对一个集合进行排序时,如果使用sorted函数,排序结果会返回null
List<Integer> integerList = Arrays.asList(1, 3, null, 2);
System.out.println(integerList);
List<Integer> collect = integerList.stream().distinct().sorted().collect(Collectors.toList());
System.out.println(collect);
//执行结果
[1, 3, null, 2]
null
利用排序函数,可以把null放到第一个(Comparator.nullsFirst),或者最后一个(Comparator.nullsLast)
List<Integer> integerList = Arrays.asList(1, 3, null, 2);
System.out.println(integerList);
List<Integer> collect = integerList.stream().distinct().sorted(Comparator.comparing(o -> o, Comparator.nullsLast(Integer::compareTo))).collect(Collectors.toList());
System.out.println(collect);
//执行结果
[1, 3, null, 2]
[1, 2, 3, null]