stream.sorted().thenComparing()排序倒叙
时间: 2023-10-21 10:52:47 浏览: 97
要对流进行排序并按照降序排列,你可以使用`Comparator`来指定排序规则。以下是一个示例代码:
```java
import java.util.Comparator;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream<Integer> stream = Stream.of(5, 2, 8, 1, 9);
stream.sorted(Comparator.reverseOrder())
.forEach(System.out::println);
}
}
```
这段代码将对流中的元素进行排序,并按照降序输出结果。使用`Comparator.reverseOrder()`可以创建一个逆序的比较器,将其传递给`sorted()`方法即可实现降序排序。最后,通过`forEach()`方法将排序后的元素逐个输出。
输出结果为:
```
9
8
5
2
1
```
相关问题
stream.sorted().thenComparing()排序倒叙
您可以使用`Comparator.reverseOrder()`方法来使排序倒序。以下是一个示例:
```java
stream.sorted(Comparator.reverseOrder()).thenComparing(...)
```
在`thenComparing()`方法中,您可以继续添加其他比较条件来进行进一步的排序。
stream.sorted()自定义排序
stream.sorted()可以使用Comparator接口的compare方法来自定义排序。比如,如果我们有一个Person类,其中有两个属性:姓名和年龄,我们可以按照年龄从小到大排序:
```
List<Person> personList = new ArrayList<>();
personList.add(new Person("张三", 20));
personList.add(new Person("李四", 18));
personList.add(new Person("王五", 22));
List<Person> sortedList = personList.stream()
.sorted((p1, p2) -> p1.getAge() - p2.getAge())
.collect(Collectors.toList());
```
在这个例子中,我们使用了Lambda表达式来实现Comparator接口的compare方法,比较的是两个Person对象的年龄。sorted()方法会返回一个新的排序后的List。
阅读全文