LIST 对象去重的问题

cpp_1 2021-03-02 12:22:22

没有积分了,所以只能设置这一些了

我有一个对像aa 里面有三个属性 name1,name2,name3,age,sex

LIST<aa> temp=new array();

这个temp里面有1千条数据
我现在想做的就是,如果有二条记录:name1,name2,name3是一样,就认为是重复数据,我要取出来

现在不能用java 8的steam,有什么高效逻辑处理方式吗?

这种1000*1000的循环是不是有一点低了


...全文
245 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
走在四季 2021-03-03
  • 打赏
  • 举报
回复
引用 1 楼 hbhbhbhbhb1021 的回复:
把name那几个字段拼接当成HashMap的key,判断是不是存在key,应该循环一遍可以出来
支持这位小哥哥,key 存的单独用一个集合存起来就是结果了。
hbhbhbhbhb1021 2021-03-02
  • 打赏
  • 举报
回复
把name那几个字段拼接当成HashMap的key,判断是不是存在key,应该循环一遍可以出来
sotondolphin 2021-03-02
  • 打赏
  • 举报
回复
你的需求是过滤掉重复的元素,还是取出重复的元素? 如果是过滤掉,直接用Set, 不要用list, 如果是取出就要用下面的逻辑 把arraylist 里面的元素按照name1,name2,name3的顺序排序,然后遍历,如果第二个元素的nam1,name2,name3 等于上一个元素的值,就把他加到新的set 里面,最后返回这个新的set.
一只三黄鸡 2021-03-02
  • 打赏
  • 举报
回复
4楼正解,试试就知道了
叫练 2021-03-02
  • 打赏
  • 举报
回复
引用 1 楼 hbhbhbhbhb1021 的回复:
把name那几个字段拼接当成HashMap的key,判断是不是存在key,应该循环一遍可以出来
是的,一遍就可以
孤寂的游魂 2021-03-02
  • 打赏
  • 举报
回复
把list转set,然后再转回list即可,set会自动去重
myazq 2021-03-02
  • 打赏
  • 举报
回复
重写 aa hashCode equals ,list转Set,再转回list
cpp_1 2021-03-02
  • 打赏
  • 举报
回复
原来我也是用的steam,又快又省代码 最后服务器上面jdk没有1.8,不能用这个 现在只能换写法。 哎。
KeepSayingNo 2021-03-02
  • 打赏
  • 举报
回复
这个果断用stream啊,直接 temp.stream.filter(aa::name1.equals(aa::name2)&&aa::name3.equals(aa::name2))..collect(Collectors.toList());

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧