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 }
时间: 2024-08-03 07:57:59

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

js遍历数组重复值和数组中对象重复值

数组去除重复值: arr.indexOf() 方法返回某个指定字符串值再字符中首次出现的位置, 如果数组中没有则返回-1 var arr=[2,8,5,0,5,2,6,7,2]; function unique1(arr){ var result=[]; for (var i = 0; i < arr.length; i++) { if(hash.indexOf(arr[i])==-1){ resule.push(arr[i]); } } return result; } 数组中对象去除的重复值

[Elasticsearch] 关于字段重复值的常用查询和操作总结

1. 取得某个索引中某个字段中的所有出现过的值 这种操作类似于使用SQL的SELECT UNIQUE语句.当需要获取某个字段上的所有可用值时,可以使用terms聚合查询完成: GET /index_streets/_search?search_type=count { "aggs": { "street_values": { "terms": { "field": "name.raw", "siz

SQL多个主键的表,插入数据有重复时,查询数据的重复值?

SQL多个主键的表,插入数据有重复时,会提示违反主键约束不能插入的错误.那么,如何找到插入数据的重复值? 解决方法:使用group by 假设有个表#a,有saleid,vendorid,comid,price,saleprice,quantity等字段. 主键是:saleid,vendorid,comid三个.假设插入#a的数据源可能会有重复的. 即:saleid,vendorid,comid三个字段都一样的字段,那么插入#a的时候会报主键冲突,违反主键约束. 如果想找出#a表中插入重复的值可

sql查询去除重复值语句

sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select

Mysql查询某字段重复值并删除重复值

1.查询重复值: select code,count(*) as count from hospital group by code having count>1; 该语句查询code重复值大于1的记录 2.删除重复: DELETE FROM hospital WHERE id NOT IN (SELECT dt.minno FROM (SELECT MIN(id) AS minno FROM hospital GROUP BY code) dt); 该语句保留id最小的记录,其余code重复的

计算一个数组里的重复值并且删去(java)

主要思想: 假设数字里的值都为正 循环判断数组 如果与前面的数字相同则变为-1 然后记录-1的个数算出重复值 然后重新new一个减去重复值长度的新数组 和原数组判断 不为-1的全部复制进来即可 代码如下: 1 package Del_Same_Num; 2 3 public class Del_Same_Num { 4 5 static int count=0; 6 7 //计算重复值 8 public static int count_same_number(int[] a) 9 { 10 f

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr

[讲解]sql except和intersect运算符(比拟两个或多个select语句的结果并前去非重复值)

图 1 UNION 中若有重复的行,会被移除,只留下一个 1.简介 EXCEPT和INTERSECT运算符使您可以比较两个或多个SELECT语句的结果并返回非重复值. 2.区别 EXCEPT运算符返回由EXCEPT运算符左侧的查询返回.而又不包含在右侧查询所返回的值中的所有非重复值. INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值. 3.注意事项 (1).使用EXCEPT或INTERSECT比较的结果集必须具有相同的结构.它们的列数必须相同,并且相应的结果集

EXCEL统计不重复值的数量

如这一列中,有多少不重复值? 1.可以点击,数据,删除重复项,清除重复值,然后剩下的统计一下即可知道:       ===> 2.用公式:=SUMPRODUCT((MATCH(E3:E20,E3:E20,0)=ROW(E3:E20)-ROW(E3)+1)*1) 其中,E3到E20是要统计的范围i,E3开始,E20结束. 这个公式的意思是,从E3到E20遍历,分别查询当前值在列表中的位置(MATCH函数),并与 当前行号相比(因数据不是从第一行开始,需要修正行号),如果相等则累加(1),否则累加(