List查询重复值的个数,并根据重复的数目从多到少排列

List查询重复值的个数,并根据重复的数目从多到少排列

 1 package ttt;
 2 
 3 import java.nio.MappedByteBuffer;
 4 import java.util.ArrayList;
 5 import java.util.Collections;
 6 import java.util.Comparator;
 7 import java.util.HashMap;
 8 import java.util.HashSet;
 9 import java.util.List;
10 import java.util.Map;
11 import java.util.Map.Entry;
12 import java.util.Set;
13 import java.util.TreeMap;
14 import java.util.TreeSet;
15 
16 public class list查重 {
17 
18     public static void main(String[] args) {
19 
20         List <String> wordList = new ArrayList<>();
21         wordList.add("age");
22         wordList.add("age");
23         wordList.add("age");
24         wordList.add("egg");
25         wordList.add("dog");
26         wordList.add("copy");
27         wordList.add("copy");
28         wordList.add("dog");
29         wordList.add("dog");
30         wordList.add("copy");
31         wordList.add("battle");
32         wordList.add("battle");
33         wordList.add("battle");
34         wordList.add("battle");
35         wordList.add("battle");
36         wordList.add("battle");
37         wordList.add("age");
38         
39         rangeWords(wordList);
40     }
41 
42     private static void rangeWords(List<String> wordList) {
43         Set<String> uniqueSet = new HashSet<>(wordList);
44         Map<String,Integer> maap= new HashMap<>();
45         for (String temp : uniqueSet) {
46             int num = Collections.frequency(wordList, temp);
47             maap.put(temp, num);
48         }
49         List<Entry<String,Integer>> list = new ArrayList<>(maap.entrySet());
50         Collections.sort(list, new Comparator<Map.Entry<String,Integer>>() {
51             @Override
52             public int compare(Map.Entry<String,Integer> cmap,Map.Entry<String,Integer> cmap2){
53                 return cmap2.getValue()-cmap.getValue();
54             }
55         });
56         
57         printMap(list);
58     }
59 
60     private static void printMap(List<Entry<String, Integer>> list) {
61         for (Map.Entry entry : list) {
62             System.out.println(entry.getKey()+"  "+entry.getValue());
63         }
64     }
65 
66 }

 

posted @ 2017-09-27 23:48 BigOcean 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值