`
小网客
  • 浏览: 1216460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Map之Value排序实现

    博客分类:
  • Java
 
阅读更多

需求:

在做统计分析的时候,有时候需要最value做排序,比如词频的统计,也就是计算tf最后输出排序的结果

实现:

map-><Map.Entry<String, Integer>->Collections.sort

Map<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < 10; i++) {
	map.put(RandomStringUtils.random(3, "abc"), RandomUtils.nextInt(10));
}
List<Map.Entry<String, Integer>> entrySet = new ArrayList<Map.Entry<String, Integer>>(
		map.entrySet());
System.out.println(entrySet);
Collections.sort(entrySet,
		new Comparator<Map.Entry<String, Integer>>() {
			public int compare(Entry<String, Integer> o1,
					Entry<String, Integer> o2) {
				return o2.getValue().compareTo(o1.getValue());
			}

		});
System.out.println(entrySet);

output:

[aab=1, cac=8, cab=6, abc=2, aaa=9, cba=2, caa=8, bcc=2, bba=8, bbc=4]
[aaa=9, cac=8, caa=8, bba=8, cab=6, bbc=4, abc=2, cba=2, bcc=2, aab=1]

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics