Java8中对list中的数据使用false或者true排序
时间: 2024-02-19 12:58:03 浏览: 161
可以使用Java8的Stream API和lambda表达式来对List中的数据使用false或者true排序。假设我们有一个包含Boolean类型的List,我们可以使用以下代码来对其进行排序:
```
List<Boolean> list = ... // 待排序的列表
List<Boolean> sortedList = list.stream()
.sorted(Comparator.comparing(Boolean::booleanValue))
.collect(Collectors.toList());
```
在上面的代码中,我们使用了Java 8的Stream API中的sorted方法来对List进行排序。我们通过提供一个Comparator<Boolean>来指定排序规则,其中我们使用了Boolean的booleanValue方法来获取Boolean对象的boolean值。这样就可以将false排在true的前面了。
需要注意的是,如果我们的List中包含null值,那么在使用booleanValue方法时会抛出NullPointerException。因此,如果我们的List中可能包含null值,需要在Comparator中进行特殊处理。比如可以使用以下代码:
```
List<Boolean> sortedList = list.stream()
.sorted(Comparator.nullsFirst(Comparator.comparing(Boolean::booleanValue)))
.collect(Collectors.toList());
```
在上面的代码中,我们使用了Java 8的Comparator的nullsFirst方法来将null值排在前面。这样就可以安全地对包含null值的List进行排序了。
阅读全文