对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>> 进行排序的主要内容,如果未能解决你的问题,请参考以下文章