List排序函数Collections.sort
1.Java提供的默认排序算法
List <Double> list = new ArrayList();
list .add(53.6 );
list .add(45.9 );
list .add(75.1 );
list .add(89.3 );
list .add(20.8 );
Collections.sort(list );
System.out.println(list .toString());
输出结果:[20.8 , 45.9 , 53.6 , 75.1 , 89.3 ]
List <String> list = new ArrayList();
list .add("张三" );
list .add("李四" );
list .add("王二" );
list .add("李明" );
list .add("杨洋" );
Collections.sort(list ,Collator.getInstance(java.util.Locale.CHINA));
System.out.println(list .toString());
输出结果:[李明, 李四, 王二, 杨洋, 张三]
2.重载排序算法
List<LinkedTreeMap<String , Object >> companys = new ArrayList<>();
LinkedTreeMap<String , Object > map1 = new LinkedTreeMap<>();
map1.put("name" , "中国" );
map1.put("percent" , "12%" );
map1.put("span" , 2.34 );
companys.add(map1);
LinkedTreeMap<String , Object > map2 = new LinkedTreeMap<>();
map2.put("name" , "四川" );
map2.put("percent" , "11%" );
map2.put("span" , 1.34 );
companys.add(map2);
LinkedTreeMap<String , Object > map3 = new LinkedTreeMap<>();
map3.put("name" , "云南" );
map3.put("percent" , "10%" );
map3.put("span" , 2.08 );
companys.add(map3);
Collections.sort(companys, new Comparator<LinkedTreeMap<String , Object >>() {
@Override
public int compare(LinkedTreeMap<String , Object > arg0,LinkedTreeMap<String , Object > arg1) {
Double span1 = (Double) arg0.get("span" );
Double span2 = (Double) arg1.get("span" );
return span1.compareTo(span2);
}
});
System.out.println(companys.toString());
输出结果:[{name=四川, percent=11 %, span=1.34 }, {name=云南, percent=10 %, span=2.08 }, {name=中国, percent=12 %, span=2.34 }]