当我尝试通过执行Collections.sort(list2)对列表进行排序时,我得到NullPointerException
该列表包含以下字符串
[BOOTH 4,ENP ROOM,BOOTH 6,C& T. 等候区,C& T等候区,C& T. 等候区,展位10,展位7,展位 3,BOOTH 1,C& T Waiting Area,C& T. 等候区,C& T等候区,C& T. 等候区,摊位1,C& T等待 面积,C& T等候区,C& T等待 面积,C& T等候区,C& T等待 面积,C& T等候区,C& T等待 面积,C& T等候区,C& T等待 面积,摊位10,C& T等候区,C& T. 等候区,C& T等候区,C& T. 等候区,C& T等候区,C& T. 等候区,C& T等候区,null, null,null,null,null,null,null, null,null,null,null,null,null, null,null,null,null]
我是否需要在此列表中使用比较器?
答案 0 :(得分:4)
您可以使用可以处理空值的比较器。 E.g。
private static final class NullsFirstComparator implements Comparator<String> {
public int compare(String lhs, String rhs) {
if (lhs == rhs)
return 0;
if (lhs == null)
return -1;
if (rhs == null)
return 1;
return lhs.compareTo(rhs);
}
}
首先会对空值进行排序(它们比所有内容都小)
答案 1 :(得分:2)
排序前删除null
值。它们无法排序
答案 2 :(得分:1)
您还可以在Apache commons中使用NullComparator
。 It为编写比较器