当前位置: 移动技术网 > IT编程>开发语言>Java > 传入一个Map<String,Long> 返回它按value排序后的结果

传入一个Map<String,Long> 返回它按value排序后的结果

2019年07月17日  | 移动技术网IT编程  | 我要评论
 1    //传入一个map<string,long>  返回它按value排序后的结果 sort为正序还是倒序(-1倒序),size为要几条数据
 2     private static map<string, long> sortmapbyvalues(map<string, long> amap, int sort, int size) {
 3 
 4         set<map.entry<string, long>> mapentries = amap.entryset();
 5 
 6         list<map.entry<string, long>> alist = new linkedlist<map.entry<string, long>>(mapentries);
 7 
 8         collections.sort(alist, new comparator<map.entry<string, long>>() {
 9 
10             @override
11             public int compare(map.entry<string, long> ele1,
12                                map.entry<string, long> ele2) {
13                 if (sort < 0) {
14                     return ele2.getvalue().compareto(ele1.getvalue());
15                 }
16                 return ele1.getvalue().compareto(ele2.getvalue());
17             }
18         });
19         // storing the list into linked hashmap to preserve the order of insertion.
20         map<string, long> amap2 = new linkedhashmap<string, long>();
21         for (map.entry<string, long> entry : alist) {
22             amap2.put(entry.getkey(), entry.getvalue());
23             if (amap2.size() == size) {
24                 break;
25             }
26         }
27         return amap2;
28     }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网