方法
compareTo()
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
返回整数,1,-1,0;返回1表示大于,返回-1表示小于,返回0表示相等。
public class java_ListMapSort {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "p");
map1.put("cj", "5");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "h");
map2.put("cj", "12");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("name", "f");
map3.put("cj", "31");
list.add(map1);
list.add(map3);
list.add(map2);
//排序前
for (Map<String, Object> map : list) {
System.out.println(map.get("cj"));
}
Collections.sort(list, new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Integer name1 = Integer.valueOf(o1.get("cj").toString()) ;//name1是从你list里面拿出来的一个
Integer name2 = Integer.valueOf(o2.get("cj").toString()) ; //name1是从你list里面拿出来的第二个name
return name1.compareTo(name2);
}
});
//List排序后
System.out.println("List排序后-------------------");
for (Map<String, Object> map : list) {
System.out.println(map.get("cj"));
}
//数组的用Arrays.sort
List<Map> listArray = new ArrayList<Map>();
listArray.add(map1);
listArray.add(map3);
listArray.add(map2);
Map[] maps=new Map[listArray.size()] ;
listArray.toArray(maps);
Arrays.sort(maps, new Comparator<Map>(){
public int compare(Map o1, Map o2) {
Integer name1 = Integer.valueOf(o1.get("cj").toString());//name1是从你list里面拿出来的一个
Integer name2 = Integer.valueOf(o2.get("cj").toString()); //name2是从你list里面拿出来的第二个name
return name1.compareTo(name2);
}
});
//lambda表达式
// Arrays.sort(maps, (o1,o2) ->{
// Integer name1 = Integer.valueOf(o1.get("cj").toString()) ;
//name1是从你list里面拿出来的一个
//Integer name2 = Integer.valueOf(o2.get("cj").toString()) ;
//name2是从你list里面拿出来的第二个name
// return name1.compareTo(name2);
//});
//数组排序后
System.out.println("数组排序后-------------------");
for (Map<String, Object> map : list) {
System.out.println(map.get("cj"));
}
}
}
原创来源:滴一盘技术