对List<Map<String,Object>> 进行排序

Posted 云中雁荡山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对List<Map<String,Object>> 进行排序相关的知识,希望对你有一定的参考价值。

 1 package lltse.base.collectiondemo;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.HashMap;
 7 import java.util.List;
 8 import java.util.Map;
 9 import java.util.Random;
10 
11 
12 public class ListDemo {
13 
14     /**
15      * @param args
16      */
17     public static void main(String[] args) {
18 
19         List<Map<String, Object>> list = getPersonList();
20         for(Map<String,Object> map:list)
21         {
22             System.out.println("lng:>>>"+map.get("lng"));
23             System.out.println("distance:>>>"+map.get("distance"));
24         }
25         
26     }
27 
28     public static List<Map<String, Object>> getPersonList() {
29         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
30         Random rd = new Random(100);
31         for (int i = 0; i < 5; i++) {
32             Map<String, Object> map = new HashMap<String, Object>();
33             map.put("lng", "lng" + i);
34             map.put("distance", rd.nextDouble());
35 
36             list.add(map);
37         }
38 
39         Collections.sort(list, new Comparator<Map<String, Object>>() {
40             public int compare(Map<String, Object> o1, Map<String, Object> o2) 
41             {
42 
43                 // o1,o2是list中的Map,可以在其内取得值,按其排序,此例为升序,s1和s2是排序字段值
44                 Double s1 = (Double) o1.get("distance");
45                 Double s2 = (Double) o2.get("distance");
46                 if (s1 > s2) 
47                 {
48                     return 1;
49                 }
50                 else 
51                 {
52                     return -1;
53                 }
54             }
55         });
56 
57         return list;
58 
59     }
60 }

运行结果如下:

 

 1 lng:>>>lng1
 2 distance:>>>0.19497605734770518
 3 lng:>>>lng4
 4 distance:>>>0.6186076060240648
 5 lng:>>>lng2
 6 distance:>>>0.6671595726539502
 7 lng:>>>lng0
 8 distance:>>>0.7220096548596434
 9 lng:>>>lng3
10 distance:>>>0.7784408674101491

 

以上是关于对List<Map<String,Object>> 进行排序的主要内容,如果未能解决你的问题,请参考以下文章

对list中map中的key值进行排序

map,list

list<map> 排序,根据总分数排序,高手来,加分

对List<Map<string,string>>排序,要求可以按照正序、逆序排序(代码写不出来可以写原理)

java处理获取到的Elasticsearch数据

怎么实现对List<Map<String, Object>>内容的清空