stream流sorted的排序规则
时间: 2023-08-16 16:14:53 浏览: 213
stream流的sorted方法可以接受一个Comparator参数,用于指定排序规则。Comparator是一个函数式接口,它定义了用于比较两个对象的方法。排序规则可以根据对象的某个属性进行升序或降序排列。
如果要按照对象的某个属性进行升序排列,可以使用Comparator.comparing方法,并传入一个函数,该函数用于提取对象的属性值。例如,假设有一个Person类,有name和age两个属性,要按照age属性进行升序排列,可以使用以下代码:
```
List<Person> persons = // 获取Person对象列表
persons.stream()
.sorted(Comparator.comparing(Person::getAge))
.forEach(System.out::println);
```
如果要按照对象的某个属性进行降序排列,可以在Comparator.comparing方法之后调用reversed方法。例如,要按照age属性进行降序排列,可以使用以下代码:
```
List<Person> persons = // 获取Person对象列表
persons.stream()
.sorted(Comparator.comparing(Person::getAge).reversed())
.forEach(System.out::println);
```
除了使用Comparator.comparing方法外,还可以使用Comparator接口的其他静态方法自定义排序规则。例如,可以使用Comparator.reverseOrder方法进行逆序排序,或者使用Comparator.naturalOrder方法进行自然顺序排序。
请注意,sorted方法是一个中间操作,需要配合终端操作(如forEach、collect等)才能触发执行。
阅读全文