java stream().sorted
时间: 2023-10-21 16:26:58 浏览: 88
java stream
Java中的`stream().sorted()`用于对Stream中的元素进行排序。它会返回一个新的排序后的Stream,而不会改变原始的Stream。
例如,假设有一个包含整数的List:
```java
List<Integer> numbers = Arrays.asList(5, 3, 8, 2, 1);
```
我们可以使用`stream().sorted()`对其进行升序排序:
```java
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
```
在上面的示例中,`.sorted()`将返回一个新的排序后的Stream,然后我们使用`.collect(Collectors.toList())`将其转换为List。
如果要对自定义对象进行排序,需要确保对象实现了`Comparable`接口,并重写了`compareTo()`方法。例如:
```java
class Person implements Comparable<Person> {
private String name;
private int age;
// constructors, getters, setters
@Override
public int compareTo(Person other) {
return this.age - other.age;
}
}
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20)
);
List<Person> sortedPeople = people.stream()
.sorted()
.collect(Collectors.toList());
```
在上面的示例中,我们通过实现`Comparable<Person>`接口,并在`compareTo()`方法中定义了比较规则(按年龄升序),从而使得`stream().sorted()`可以对Person对象进行排序。
希望能解答到您的问题!如果还有其他问题,请继续提问。
阅读全文