在使用Java的Comparator进行排序时,如果遇到null值,你可以选择以下几种处理方式:
Comparator<Integer> comparator = (a, b) -> {
if (a == null && b == null) {
return 0;
}
if (a == null) {
return -1;
}
if (b == null) {
return 1;
}
return a.compareTo(b);
};
类似地,如果你希望将null值视为最大值,只需调整返回值即可。
Comparator.nullsFirst()或Comparator.nullsLast()方法:
Java 8引入了Comparator.nullsFirst()和Comparator.nullsLast()方法,可以方便地处理null值。例如,对于整数列表,你可以这样做:Comparator<Integer> comparator = Comparator.nullsFirst(Integer::compareTo);
或者:
Comparator<Integer> comparator = Comparator.nullsLast(Integer::compareTo);
这将分别将null值视为最小值和最大值。
filter()方法过滤掉它们。例如,对于一个整数列表,你可以这样做:List<Integer> filteredList = list.stream().filter(Objects::nonNull).collect(Collectors.toList());
filteredList.sort(Comparator.naturalOrder());
这将创建一个新的列表,其中不包含null值,并按照自然顺序进行排序。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。