集合中根据String来判定元素的排序

工作时用流排序后,发现个问题。

代码如:

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() {
			@Override
			public int compare(String o1, String o2) {
				// TODO Auto-generated method stub
				return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
			}
		});

也算是在字符串比较排序上面踩了个坑吧。

 

你可能感兴趣的:(JAVA)