List<String> list = Arrays.asList("15%", "5%", "12%", "17%");
对这个list集合排序,从小到大排,输出5% 12% 15% 17%
用collects.sort()不行
List<String> list = Arrays.asList("15%", "5%", "12%", "17%");
对这个list集合排序,从小到大排,输出5% 12% 15% 17%
你对排序理解错了。
集合中的元素是字符串类型,并不是数值类型。
对字符串排序是按照字典排序规则。
List<String> list = Arrays.asList("15%", "5%", "12%", "17%");
Collections.sort(list,new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.parseInt(o1.replaceAll("[^0-9]*", "")) -
Integer.parseInt(o2.replaceAll("[^0-9]*", ""));
}
});
System.out.println(list);