java stream.sorted排序类属性为空倒叙
时间: 2023-08-04 21:13:44 浏览: 111
java使用stream对日期排序
在 Java 中,使用 `sorted` 方法对流中的元素进行排序时,可以使用 `Comparator` 对象来指定排序规则。如果你想按照某个类属性进行排序,并且该属性可能为空,可以使用 `Comparator.nullsLast` 方法来确保空值在排序后出现在最后。
以下是一个示例代码:
```java
List<Person> people = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 30),
new Person("Charlie", null),
new Person("Dave", 25),
new Person("Eve", null)
);
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge, Comparator.nullsLast(Comparator.reverseOrder())))
.collect(Collectors.toList());
System.out.println(sortedPeople);
```
在上面的示例中,我们创建了一个 `Person` 类,其中有两个属性:姓名和年龄。我们使用 `Comparator.comparing` 方法指定按照年龄属性进行排序,使用 `Comparator.nullsLast` 方法确保空值在排序后出现在最后,使用 `Comparator.reverseOrder` 方法实现倒序排序。
输出结果为:
```
[Alice (20), Dave (25), Bob (30), Charlie (null), Eve (null)]
```
阅读全文