List<Map<String,Object>>去重,排序

按List内Map的某一key的value值排序:

  1. package cjw;  
  2.   
  3. import java.util.Collections;  
  4. import java.util.Comparator;  
  5. import java.util.HashMap;  
  6. import java.util.HashSet;  
  7. import java.util.LinkedList;  
  8. import java.util.List;  
  9. import java.util.Map;  
  10. import java.util.Set;  
  11.   
  12. public class ListMapSort {  
  13.     /** 
  14.      * @param args 
  15.      */  
  16.     public static void main(String[] args) {  
  17.         // TODO 自动生成方法存根  
  18.         List<Map<String,Object>> listMap1 = new LinkedList<Map<String,Object>>();  
  19.         Map<String,Object> map = new HashMap<String, Object>();  
  20.         map.put("date"20121010);  
  21.         listMap1.add(map);  
  22.         map = new HashMap<String, Object>();  
  23.         map.put("date"20011213);  
  24.         listMap1.add(map);  
  25.         listMap1.add(map);  
  26.         map = new HashMap<String, Object>();  
  27.         map.put("date"20130502);  
  28.         listMap1.add(map);  
  29.         System.out.println("原始"+listMap1);  
  30.           
  31.         List<Map<String,Object>> listMap2 = new LinkedList<Map<String,Object>>();  
  32.         Set<Map> setMap = new HashSet<Map>();  
  33.         for(Map<String,Object> map1 : listMap1){  
  34.             if(setMap.add(map1)){  
  35.                 listMap2.add(map1);  
  36.             }  
  37.         }  
  38.         System.out.println("去重"+listMap2);  
  39.           
  40.         Collections.sort(listMap2, new Comparator<Map<String,Object>>(){  
  41.             public int compare(Map<String,Object> o1,Map<String,Object> o2){  
  42.                 return o1.get("date").toString().compareTo(o2.get("date").toString()); 
  43.               //默认升序
  44.              //return o2.get("date").toString().compareTo(o1.get("date").toString());  降序

  45.             }  
  46.         });  
  47.         System.out.println("排序:"+listMap2);  
  48.     }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值