HashMap实现排序

在开发中遇到需求,将返回的List中的map按照日期进行升序排序 

1 class Test{ 

 2 public static void main(String[] args) { 3 Map<String, Object> map2 = new HashMap<String, Object>();


 1 class Test{ 

 2 public static void main(String[] args) { 

 3 Map<String, Object> map2 = new HashMap<String, Object>();

4         map2.put("dt", "2021-08-07");
 5         map2.put("age",50);
 6 
 7         Map<String, Object> map3 = new HashMap<String, Object>();
 8         map2.put("dt", "2021-08-06");
 9         map3.put("age", 20);
10 
11         Map<String, Object> map4 = new HashMap<String, Object>();
12         map2.put("dt", "2021-08-09");
13         map4.put("age", 30);
14         List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
15         list.add(map2);
16         list.add(map3);
17         list.add(map4);
18       
19                 List<Map<String, Object>> collect =list.stream().sorted(Comparator.comparing(TestJin::comparingByAge)).collect(Collectors.toList());
20 //输出List中对象,即按照年龄升序
21 system.out.println('collect');
22 
23 //输出List中对象,即按照年龄降序
24 List<Map<String, Object>> collect1 = list.stream().sorted(Comparator.comparing(TestJin::comparingByAge).reversed()).collect(Collectors.toList());
25 system.out.println('collect1');
26 }
27 //实现按照名字顺序排序
28     private static String comparingByName(Map<String, Object> map){
29         return (String) map.get("name");
30     }
31 //实现按照年龄大小排序
32     private static Integer comparingByAge(Map<String, Object> map){
33         return (Integer) map.get("age");
34     }
35 
}

 

//jdk8可用lambda方法实现排序
List<HashMap<String, Object>> child = (List<HashMap<String, Object>>) pp.get("child"); //实现根据id值进行排序 if (child != null && child.size() > 1) { Collections.sort(child, (Comparator<Map<String, Object>>) (o1, o2) -> { Integer o1Value = Integer.valueOf(o1.get("id").toString()); Integer o2Value = Integer.valueOf(o2.get("id").toString()); return o2Value.compareTo(o1Value); }); }

  

posted @ 2021-08-10 10:12  tomsen_jin  阅读(574)  评论(0)    收藏  举报