使用Stream的sorted()方法可以对集合进行排序,但是默认情况下,如果集合中包含null值,会抛出NullPointerException异常。 为了解决这个问题,我们可以使用Comparator.nullsLast()方法创建一个比较器,将null值放在排序结果的最后。 List<Integer>sortedNumbers=numbers.stream().sorted(Comparator.nullsLast(Integer::compareTo))....
import java.util.Comparator; import java.util.List; public class Main { public static void main(String... args) { List<String> names2 = Arrays.asList("XML", null, "Java", "HTML", "CSS"); names2.sort(Comparator.nullsLast(String::compareTo)); System.out.println(names2); } }...
项目里使用到排序, java里没有像C# 里的linq,只有stream,查找stream.sorted源码看到有个 Comparator.nullsLast 然后看了一下实现,果然是能够处理null值的排序,如: minPriceList.stream().sorted(Comparator.comparing(l -> l.getCreateDate(), Comparator.nullsLast(Date::compareTo))).findFirst().get(); 其中...
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序 //空/Null数据排序 list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(item -> item.属性二, Comparator.nullsLast(Date::compareTo))).col...
Stream API的部分特性如下:只有当一个终端操作被调用时,例如forEach()、collect()、reduce()等,...
public class Main { public static void main(String[] args) { List<String> list = Arrays.asList("apple", "banana", null, "orange"); // 使用Comparator处理空值 List<String> sortedList = list.stream() .sorted(Comparator.nullsFirst(String::compareTo)) .collect(Collectors.toList()); System...
stream().sorted(comparator).collect(Collectors.toList()); 如果某个属性需要降序,则在comparing中声明Comparator.reverseOrder() 排序字段避免NPE 在排序时可能会遇到排序的字段值是null的情况,如果不加判断就会报NPE。Comparator类提供了一个方法nullsLast()和nullsFirst()两个函数,可以根据实际情况将null值放在第一...
3.使用 Stream 流排序 在JDK 8 之后可以使用更加简单的方法 Stream 流来实现排序功能,它的实现只需要一行代码,具体实现如下: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 publicclassListSortExample3{publicstaticvoidmain(String[]args){// 创建并初始化 ListList<Person>list=newArrayList<Person>(){{ad...
the first array to compare aFromIndex Int32 the index (inclusive) of the first element in the first array to be compared aToIndex Int32 the index (exclusive) of the last element in the first array to be compared b Byte[] the second array to compare bFromIndex Int32 the index (...
persons.stream().sorted(Comparator.nullsFirst(Comparator.comparing(Person::getAgeRange))) .collect(Collectors.toList()); //above throws null pointer exception } } class Person { private String name; private AgeRange ageRange; public String getName(){ ...