精华内容
下载资源
问答
  • 在实际开发,经常会遇到需要找出(删除)一个list中某些元素的属性相同的元素,或者两个list中某些元素的属性相等的元素,这种方法很多,这里整理列出一些: 废话不说,上代码,有注释掉的你们自己看import java....

    在实际开发中,经常会遇到需要找出(删除)一个list中某些元素的属性相同的元素,或者两个list中某些元素的属性相等的元素,这种方法很多,这里整理列出一些:
    废话不说,上代码,有注释掉的你们自己看

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class Test {
    	public static void main(String[] args) {
    		List<Student> testList = new ArrayList<Student>();
    		testList.add(new Student("张一"));
    		testList.add(new Student("张二"));
    		testList.add(new Student("张三"));
    		testList.add(new Student("老王"));
    		testList.add(new Student("张四"));
    		testList.add(new Student("张五"));
    		testList.add(new Student("张六"));
    		testList.add(new Student("张七"));
    		testList.add(new Student("老王"));
    		testList.add(new Student("张八"));
    		testList.add(new Student("张九"));
    		testList.add(new Student("老王"));
    
    		List<Student> repeatList = new ArrayList<Student>();//用于存放重复的元素的list
    
    		// 以一种方法:两个循环(最蠢的方法)
    		for (int i = 0; i < testList.size() - 1; i++) {
    			for (int j = testList.size() - 1; j > i; j--) {
    				if (testList.get(j).getStuName().equals(testList.get(i).getStuName())) {
    					repeatList.add(testList.get(j));//把相同元素加入list(找出相同的)
    		
    					testList.remove(j);//删除重复元素
    				}
    			}
    		}
    //		for(Student s : repeatList){
    //			System.out.println("相同的元素:" + s.getStuName());
    //		}
    		
    		
    		//第二种方法:利用map.containsKey()
    		Map<String, Integer> map = new HashMap<>(); 
    		for(Student s : testList){
    			//1:map.containsKey()   检测key是否重复
    			if(map.containsKey(s.getStuName())){
    				repeatList.add(s);//获取重复的学生名称
    				
    				Integer num = map.get(s.getStuName());
    				map.put(s.getStuName(), num+1);
    			}else{
    				map.put(s.getStuName(), 1);
    			}
    			//2: 这个key是不是存在对应的value(key是否在map中)
    //			Integer count = map.get(s.getStuName());//这种写法也可以,异曲同工
    //          if (count == null) {
    //              map.put(s.getStuName(), 1);
    //          } else {
    //              map.put(s.getStuName(), (count + 1));
    //          }
    		}
    //		for(Student s : repeatList){
    //			System.out.println("相同的元素:" + s.getStuName());
    //		}
    //		for(Map.Entry<String, Integer> entry : map.entrySet()){
    //			System.out.println("学生:" + entry.getKey() + "的名字出现了:" + entry.getValue() + "次");
    //		}
    		
    		
    		//第三种方法:contains()方法  这个个人认为有一定的局限性,个人理解哈
            List<Integer> repeatList1 = new ArrayList<>();  
            List<Integer> list = new ArrayList<>();  
            list.add(1);
            list.add(2);
            list.add(1);
            list.add(3);
            list.add(4);
            list.add(1);
            list.add(5);
            for(int i=0;i<list.size();i++){  
                if(!repeatList1.contains(list.get(i))){  
                	repeatList1.add(list.get(i));  
                }  
            } 
            for(Integer s : repeatList1){
    			System.out.println(s);
    		}
    	}
    }
    
    

    Student类:

    public class Student {
    	
    	public Student(String stuName){
    		this.stuName = stuName;
    	}
    	
    	private String 	stuName;
    
    	public String getStuName() {
    		return stuName;
    	}
    
    	public void setStuName(String stuName) {
    		this.stuName = stuName;
    	}
    	
    }
    

    这个是java8的stream,由于我用的还是jdk7 这里就找了一个 给你们当例子看,有兴趣可以看stream相关的知识,很强大的功能

    List<String> list = Arrays.asList("123", "1234", "12345", "123456", "1234567", "122222223", "123", "1234", "2422");
    Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
    System.out.println(collect);
    

    就列出这么几种,应该够用了
    原创:影公子 ——转载请注明原帖链接

    展开全文
  • 今天被问到了一个面试题,挺有意思的,这里特意的记录一下,问题是这样的:怎么从list中找出重复数据,以及这些重复数据的个数?  解决思路是:使用一个map,key用来记录list中的数据,value用来记录重复数据的...

           今天被问到了一个面试题,挺有意思的,这里特意的记录一下,问题是这样的:怎么从list中找出重复数据,以及这些重复数据的个数?

           解决思路是:使用一个map,key用来记录list中的数据,value用来记录重复数据的个数,然后操作map来获取list中的重复数据即可,代码如下:

    package com.Jevin.test;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class Test03 {
        
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            list.add("a");
            list.add("a");
            list.add("a");
            list.add("b");
            list.add("b");
            list.add("c");
            list.add("d");
            list.add("d");
    
            Map<String,Integer> map = new HashMap<>();
            for(String str:list){
                Integer i = 1; //定义一个计数器,用来记录重复数据的个数
                if(map.get(str) != null){
                    i=map.get(str)+1;
                }
                map.put(str,i);
            }
            System.out.println("重复数据的个数:"+map.toString());
    
    
            System.out.print("重复的数据为:");
            for(String s:map.keySet()){
                if(map.get(s) > 1){
                    System.out.print(s+" ");
                }
            }
        }
    }

    执行结果如下:

    展开全文
  • 主要介绍了java 查找list中重复数据实例详解的相关资料,需要的朋友可以参考下
  • 查找list中重复数据

    千次阅读 2016-08-31 15:45:36
    需求: 查找一个List集合所有重复的数据,重复的数据...如果有重复数据,则给这些重复数据加上编号,上述数据改为:aa1, bb1, aa2, bb2, cc, dd.算法如下:public static void same(List<String> list) { String

    需求:
    查找一个List集合中所有重复的数据,重复的数据可能不止一堆,比如:aa, bb, aa, bb, cc , dd, aa这样的数据。如果有重复数据,则给这些重复数据加上编号,上述数据改为:aa1, bb1, aa2, bb2, cc, dd.

    算法如下:

    public static void same(List<String> list) {
            String [] indexArr ;
            Map<String, String> map = new HashMap<String, String>();
            for (int i = 0; i < list.size(); i++) {
                String key = list.get(i);
                String old = map.get(key);
                if (old != null) {
                    map.put(key, old + "," + (i + 1));
                } else {
                    map.put(key, "" + (i + 1));
                }
            }
            Iterator<String> it = map.keySet().iterator();
            int index = -1;
            while (it.hasNext()) {
                String key = it.next();
                String value = map.get(key);
                if (value.indexOf(",") != -1) {
                    System.out.println(key + " 重复,行: " + value);
                    indexArr = value.split(",");
    
                    for (int i = 0; i < indexArr.length; i++) {
                        index = Integer.parseInt(indexArr[i])-1;
                        list.set(index, list.get(index)+(1+i));
                    }
                }
            }
    
            for (String val : list) {
                System.out.println("val = "+val);
            }
            System.out.println("..................");
    
        }
    展开全文
  • Java根据list对象的属性找出list重复数据或去除list重复数据 按照思路进行对应的修改即可 第一种方法 public static void main(String[] args) { List<Student> testList = new ArrayList<Student>()...

    Java根据list中对象的属性找出list重复数据或去除list重复数据

    按照思路进行对应的修改即可,推荐使用第二种或者第三种
    (如有版权问题,请及时联系我)

    第一种方法

    public static void main(String[] args) {
    	List<Student> testList = new ArrayList<Student>();
    	testList.add(new Student("张一"));
    	testList.add(new Student("张二"));
    	testList.add(new Student("张三"));
    	testList.add(new Student("老王"));
    	testList.add(new Student("张四"));
    	testList.add(new Student("张五"));
    	testList.add(new Student("张六"));
    	testList.add(new Student("张七"));
    	testList.add(new Student("老王"));
    	testList.add(new Student("张八"));
    	testList.add(new Student("张九"));
    	testList.add(new Student("老王"));
     
    	List<Student> repeatList = new ArrayList<Student>();//用于存放重复的元素的list
     
    	// 以一种方法:两个循环(最蠢的方法)
    	for (int i = 0; i < testList.size() - 1; i++) {
    		for (int j = testList.size() - 1; j > i; j--) {
    			if (testList.get(j).getStuName().equals(testList.get(i).getStuName())) {
    				repeatList.add(testList.get(j));//把相同元素加入list(找出相同的)
    	
    				testList.remove(j);//删除重复元素
    			}
    		}
    	}
    

    第二种

    	//第二种方法:利用map.containsKey()
    	Map<String, Integer> map = new HashMap<>(); 
    	for(Student s : testList){
    		if(map.containsKey(s.getStuName())){
    			Integer num = map.get(s.getStuName());
    			map.put(s.getStuName(), num+1);
    		}else{
    			map.put(s.getStuName(), 1);
    		}
    		System.err.println(map.toString());
    
    

    第三种

    List<String> list = Arrays.asList("123", "1234", "12345", "123456", "1234567", "122222223", "123", "1234", "2422");
    Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
    System.out.println(collect);
    
    
    展开全文
  • 在实际开发,经常会遇到需要找出(删除)一个list中某些元素的属性相同的元素,或者两个list中某些元素的属性相等的元素,这种方法很多,这里整理列出一些: 废话不说,上代码,有注释掉的你们自己看 import java....
  • 查询出List中重复数据

    千次阅读 2020-09-10 10:25:02
    项目难免会遇到一个list对象存在相同的数据,但是我们怎么去找出相同的数据呢? import com.alibaba.fastjson.JSON; import com.king.science.dto.Student; import java.util.ArrayList; import java.util....
  • c# 获取List中重复数据

    千次阅读 2017-09-12 11:47:32
    遍历集合,查找重复数据,将其中重复数据信息存放到Hashtable或Dictionary集合。实现方法举例如下: 【例】查找List 集合重复的数据项,将数据项重复信息存放到Dictionary集合,最后输出结果: using ...
  • 获取list中重复数据

    2021-01-19 23:18:13
    SupplierImportDTO, List<SupplierImportDTO>> collect = passCheckSupplierImportDTOList.stream().collect(Collectors.groupingBy(Function.identity())); for(Map.Entry<SupplierImportDTO, List<...
  • 使用lambda表达式取出list中重复的、不重复数据数据:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4] 不重复数据[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 重复数据[1, 2, 3, 4] Process finished with exit code 0 ...
  • 统计list中重复数据的条数

    千次阅读 2017-02-22 10:11:34
    项目需求需要统计近两天的所有新闻所对应的客户端的首发次数,所以做以下处理: public void ... List daPingList = findDaPingList(); Map chartTypeMap = showOtherSourceList(); List obj=new Array
  • 有一个List中存储了很对bean对象...其中每个bean的数据又是不相同的,要根据bean的name属性来判断是否有重复数据。这时我们再创建一个新的List集合存储name属性的值List&lt;String&gt; carList = new Arr...
  • 两个list取出重复数据

    千次阅读 2015-09-11 09:52:44
    public static void main(String[] args) { ... List list1 = new ArrayList(); for (int i = 0; i ; i++) { list1.add(i); } List list2 = new ArrayList(); for (int i = 2; i ; i++) { list2.
  • 获取List集合重复数据和重复次数(适用于有着连续的相同数据项时)
  • import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator;...import java.util.List; import java.util.Map; import java.util.Map.Entry; public class Test1 { public static void main
  • python找出数据中重复数据

    万次阅读 多人点赞 2019-02-28 14:20:51
    如果要找出哪些元素是重复的,可以用pandas库的dataframe数据结构,用drop_duplicates方法进行去重。原理是这样:drop_duplicates方法可以完全清除重复元素,比如[1, 2, 2, 3],经过drop_duplic...
  • package cn.com.newglobe.action.attendance; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class Test2 { public
  • 最近在编写项目时,发现有些表的数据有很多重复,需要做一下预处理,去掉这些重复数据。百度和谷歌一阵后,找到了解决方法,希望对阅读本文的人有帮助。  2、添加一个YyDate对象,用来保存相关数据。最重要的...
  • 使用jpa 的@query进行查询,使用list<实体类>进行接收,结果,list中数据全部是一样的,将其它数据覆盖掉了,请问问题在了哪里?![1](https://img-ask.csdn.net/upload/201809/12/1536755742_924046.png)![2]...
  • 找出两个list集合中重复的部分

    千次阅读 2017-11-29 15:33:43
    找出两个list中重复的部分,代码简单,如下: public static void main(String[] args) {  List list = new ArrayList();  list.add("aaa");  list.add("bbb");  list.add("ccc");
  • 找出两个List集合重复的元素

    万次阅读 热门讨论 2019-02-13 20:26:56
    前几天,有个同事问我说怎么找出两个List集合中重复的元素,我当时就说一个集合在外面循环,一个集合在内循环,如果两个元素相等了,就找出来了,我回来一想还是不对,要是数据非常多,这样循环下去,服务器会卡死的...
  • list 数据必须唯一,数据库没有做限制,必须查询数据库...此时就需要一个快速判断list 是否有重复数据的方法, 自己记录: 可以考虑下在写入List的时候做验证么? if (!list.Contains(pram)) { list.Add(pram);} ...
  • jdk1.8如何找到List集合中重复对象

    千次阅读 2019-07-25 16:32:27
    项目在开发大批量导入功能的时候,除了要要将导入的每一行和数据库比对,校验数据是否已经存在,还要判断自身导入的EXCEL数据里的重复数据呢。 List里对象属性特别多,而且可能有变化,如何快速的过滤数据… jdk 1.8...
  • list<String> 数据必须唯一,数据库没有做限制,必须查询数据库, 检查需要插入的数据是否已经存在,同时必须保证插入的数据不能有重复, ...此时就需要一个快速判断list<String> 是否有重复数据的方法,
  • import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function;... //过滤重复数据 ...
  • ls = [2,3,6,5,5,6,6,7] ls = set(ls) ls = list(ls) print(ls) 原理:数组是一个无序的不重复的序列,所以我们可以先把列表转化数组,然后再转化回列表,这样就能实现列表去重的需求。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 248,639
精华内容 99,455
关键字:

怎么找出list中重复的数据