工作时用流排序后,发现个问题。
代码如:
list.stream().sorted(Comparator.comparing(XXX:getXX));
XXX:getXX 为字符串格式,由于该值为数字的字符串。即当集合里有11,2,这一类数字时,会将11排序在2之前。
该流方法并没有自带的进行判断,测试发现后即改为int类型进行比较
代码如:
list.sort((String x,String y)->Integer.valueOf(x).compareTo(Integer.valueOf(y)));
或
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
}
});
也算是在字符串比较排序上面踩了个坑吧。