Java如何去掉List<实体> 实体里的重复数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何去掉List<实体> 实体里的重复数据相关的知识,希望对你有一定的参考价值。

放入list集合里面有9条user数据
但是其中有三条user对象里面的数据是重复
想要去除
实体里面是有 主要是因为实体里的数据重复 所以才想去除

假设原数据:
List userlist ....
方法1(也是我比较常用的):
新建一个List,遍历原list,加入新的list
List newlist = new ArrayList();
for ( v : userlist) 
  if (!newlist.contains(v))
    newlist.add(v);

...
方法2:利用set集合
Set set = new  HashSet(); 
List newlist = new ArrayList();
for (v : userlist) 
    if(set.add(v))
     newlist.add(v);
    

!!!

百度真心坑啊,2015年的问题竟然也能拿出来让回答!

参考技术A 循环list,去除重复的或者是新加到另一个list(重复的不录入) 参考技术B 对List里面数据拿出来,遍历,重复的删除就行了!
你为何不用set集合!本回答被提问者和网友采纳
参考技术C 可以放入set啊,List本身就是可以支持重复数据的追问

那返回结果不就是 set类型了么。

参考技术D 使用 Set 试一下
List newList = new ArrayList(new HashSet(list));

Java将List中的实体按照某个字段进行分组的算法

public void test() {
        List<User> list = new ArrayList<>();
        //User 实体 测试用 String id,name;
        //当前测试以id来分组,具体请按开发场景修改
        list.add(new User("1", "1"));
        list.add(new User("1", "2"));
        list.add(new User("2", "2"));
        list.add(new User("2", "3"));
        list.add(new User("2", "4"));
        list.add(new User("3", "3"));
        
        //初始化一个map
        Map<String, List<User>> map = new HashMap<>();
        for(User user : list) {
            String key = user.getId();
            if(map.containsKey(key)) {
                //map中存在以此id作为的key,将数据存放当前key的map中
                map.get(key).add(user);
            } else {
                //map中不存在以此id作为的key,新建key用来存放数据
                List<User> userList = new ArrayList<>();
                userList.add(user);
                map.put(key, userList);
            }
        }
        //分组结束,map中的数据就是分组后的数据
    }

 

以上是关于Java如何去掉List<实体> 实体里的重复数据的主要内容,如果未能解决你的问题,请参考以下文章

java怎么去掉List中实体类字段重复字段

java 如何将List<Object[]>转换成List<实体>?

java中的action有list,list中放list,list里再放实体,怎么在页面上拿实体?

java去掉实体类的空属性

java通过实体类组装报文

java list每一条里remove去除某一字段