map集合中取出分类优先级最高的类别名称

 1 import java.util.Arrays;
 2 import java.util.Collection;
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 import java.util.Map.Entry;
 6 
 7 /*
 8  * 取出分类优先级最高的类别名称
 9  * 思路:
10  * 对于map集合中的key-value对,统计value值出现的频数,
11  * 将value-频数写入map集合,对频数排序,计算出最高的频数
12  * 输出最高频数对应得key值。
13  */
14 public class MapTest {
15 
16     public static void main(String[] args) {
17         //创建map集合
18         Map<String, String> map = new HashMap<>();
19         map.put("Prosper", "网贷");
20         map.put("聚爱财", "网贷");
21         map.put("爱财", "网贷");
22         map.put("美国", "政经");
23         map.put("印度", "政经");
24         map.put("度", "政经");
25         map.put("比特时代", "区块链");
26         map.put("火币资讯", "区块链");
27         map.put("BTC123", "区块链");
28         map.put("123", "区块链");
29         map.put("罚单", "监管");
30         map.put("捷信", "大公司");
31         map.put("信", "大公司");
32         map.put("众筹", "众筹");
33         map.put("sefd", "众筹");
34         map.put("er", "政经");
35         
36         //计算value出现的频数并写入map集合(res)
37         Map<String, Integer> res = new HashMap<>();
38         for(Entry<String, String> entry : map.entrySet()){
39             if(res.containsKey(entry.getValue())){
40                 res.put(entry.getValue(), res.get(entry.getValue()) + 1);
41             }else{
42                 res.put(entry.getValue(), 1);
43             }
44         }
45         System.out.println("res:" + res);
46         /*
47          * res:{区块链=4, 众筹=1, 网贷=3, 大公司=1, 政经=3, 监管=1}
48          */
49         
50         //对res集合中的key-value对进行排序,选出最高频数
51         if(res != null){
52         Collection<Integer> c = res.values();
53         Object[] obj = c.toArray();
54         Arrays.sort(obj);
55         Object i = obj[obj.length-1];
56         //Object ii = obj[obj.length-2];
57         System.out.println("最大的value值:" + i);
58         //System.out.println(ii);
59         //System.out.println(i);
60         //res.put("maxvalue", (Integer)i);
61     
62         //取出res中最大的频数对应的key(即就是取出)
63         String key = null;
64         for(String getkey : res.keySet()){
65             if(res.get(getkey).equals(i)){
66                 key = getkey;
67             }
68         }
69         System.out.println("最大的value对应的key:" + key);
70         }
71     }
72 }
原文地址:https://www.cnblogs.com/lyywj170403/p/9373247.html