情况一:List里只有一个Map,Map中有多条记录。这个时候排序只要 对Map进行排序即可。
Map<String,Object> map = new HashMap<>();
map.put("test1",1);
map.put("test2",2);
map.put("test3",2);
List<Map.Entry<String,Object>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Object>>() {
@Override
public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {
String name1 =o1.getKey();
String name2= o2.getKey();
return name1.compareTo(name2);
});
情况二:List里有多个Map,我是根据value的值来排序的。代码如下:
Collections.sort(list, new Comparator<Map<Integer,String>>(){
@Override
public int compare(Map<Integer,String> o1, Map<Integer,String> o2) {
String name1 =(String)o1.get(10002);//name1是从你list里面拿出来的一个
String name2= (String)o2.get(10002); //name1是从你list里面拿出来的第二个name
return name2.compareTo(name1);
}
});