有这样一个问题,我们将list 进行排序的时候,有时候回用到Arrays.sort方法,使用时通常是这样的
public List<Object> sortByName(List<String> name){
Comparator<Object> cmp = Collator.getInstance(Locale.CHINESE);
Object[] nameArr =name.toArray();
Arrays.sort(nameArr,cmp);
return Arrays.asList(nameArr);
}
便是先将list转为数组,然后再使用进行排序,这个方法是根据首字母进行排序。
但是有时候会报空指针,但是我debug一下查看根本没有null元素
后来一看,啊,不显示null元素。好吧,通过其他网友的解决方法,重新解决啦。在此附上链接
https://blog.csdn.net/qq_35280509/article/details/52632125
我们只需要把空的元素过滤除去就行
public List<String> filterNull(List<String> list){
List<String> filterList = new ArrayList<String>();
for(String str : list){
if(str != null){
filterList.add(str);
}
}
return filterList;
}
// 首字母排序
public List<Object> sortByName(List<String> name){
name = filterNull(name);
Comparator<Object> cmp = Collator.getInstance(Locale.CHINESE);
Object[] nameArr =name.toArray();
Arrays.sort(nameArr,cmp);
return Arrays.asList(nameArr);
}
只需要添加filterNull方法即可。