对hashMap中的value进行排序




 

对hashMap中的value进行排序



 最近开发中用到了HashMap ,而且想到要利用其value的大小排序。。真是个伤脑筋的问题。
还好,经过查阅各个地方的资料。发现这个下边的代码处理是最简单有效的。代码很少,却达到目的了。
一般我坚持的一个原则的是:能简单处理的,尽量不做复杂工作。
关键代码部分如下:
[java]  view plain  copy
  1. HashMap map_Data=new HashMap();  
  2.     map_Data.put("A""98");  
  3.     map_Data.put("B""50");  
  4.     map_Data.put("C""50");  
  5.     map_Data.put("D""25");  
  6.     map_Data.put("E""85");  
  7.     System.out.println(map_Data);  
  8.     List<Map.Entry<String, String>> list_Data = new ArrayList<Map.Entry<String, String>>(map_Data.entrySet());  
  9.     Collections.sort(list_Data, new Comparator<Map.Entry<String, String>>()  
  10.       {   
  11.           public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2)  
  12.           {  
  13.            if(o2.getValue()!=null&&o1.getValue()!=null&&o2.getValue().compareTo(o1.getValue())>0){  
  14.             return 1;  
  15.            }else{  
  16.             return -1;  
  17.            }  
  18.               
  19.           }  
  20.       });  
  21.     System.out.println(list_Data);   


主要的一个知识点在这个Collections.sort(list,Comparator接口实现)地方,而最最重要核心部分是这个Comparator实现。因为Comparator实现决定你的排序。采用了隐藏类实现方式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值