list 中有三个字段,例如时间,姓名,年龄,时间可以为空,需求list stream 按时间排序倒叙 要求时间为空排序最前面
时间: 2023-08-04 07:28:28 浏览: 86
可以使用 Java 8 中的 stream API 来对这个 list 进行排序操作。具体实现如下:
```java
List<Person> persons = new ArrayList<>();
// 添加数据到 list 中
// ...
// 按时间排序倒序,时间为空的排在最前面
List<Person> sortedList = persons.stream()
.sorted(Comparator.comparing(Person::getTime, Comparator.nullsFirst(Comparator.reverseOrder())))
.collect(Collectors.toList());
```
假设 Person 类中包含了这三个字段,代码中的 `Person::getTime` 表示使用 getTime 方法获取时间字段进行排序,`Comparator.nullsFirst(Comparator.reverseOrder())` 表示对时间字段进行倒序排序并将空值排在最前面。最后使用 `collect(Collectors.toList())` 将排序后的 stream 转换成 list。
阅读全文