关于集合去重的问题

蓝莓之恋9527 2020-01-03 04:42:25
场景:假设一个类A,该类有lot01到lot25共25个属性,现在有List<A>多条数据,对于lot01,只要里面有一个不相等就显示该属性,避免多次循环的要求下,有什么好的实现方法
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CS_草祭先生 2020-01-03
  • 打赏
  • 举报
回复
引用 4 楼 蓝莓之恋9527 的回复:
[quote=引用 3 楼 aw277866304 的回复:] 推荐你看一下这篇文章: https://blog.csdn.net/lin252552/article/details/81128296
谢谢你的推荐,存在两个问题,1.我们现在还是用的jdk7, 2.我这个涉及到25个属性,应该不太适合[/quote] 那你可以利用反射。
zzzzzzzzzzzw___ 2020-01-03
  • 打赏
  • 举报
回复
确实是需要优化,看着都是全部重复的代码
蓝莓之恋9527 2020-01-03
  • 打赏
  • 举报
回复

可能是我没有表达清楚,我这三个dto里面,由于第一个属性有不一样的,所以我需要保留这个属性,另外三个一个,就不要了
最终返回的结果还是三条,只是三个dto都只有第一个属性有值
小包包007 2020-01-03
  • 打赏
  • 举报
回复
set去重!!!
_沉浮_ 2020-01-03
  • 打赏
  • 举报
回复
引用 2 楼 蓝莓之恋9527 的回复:
[quote=引用 1 楼 _沉浮_ 的回复:] 什么叫有一个不相等,谁和谁不相等了
对应的属性啊,lot01和集合里的其它lot01比较[/quote] 有这种业务场景吗? 重写equals和hashcode,当要比较某个元素的时候,构建没有该元素的新集合,用contain方法就能判断
阿豆响当当 2020-01-03
  • 打赏
  • 举报
回复
根据java实体某个属性去重 很简单的
1:重写 hashcode and equals 方法 关键点在equals方法 需要按照我们的需求 定制下
这个用来测试的类 假设 使用 orderNo 来作为去重的依据属性

2:定义set 调用set的addall方法 将 重写好 eq 与hs 方法的 容器 放进去 这个过程中 set会调用到我们自己定义的equals 与hashcode方法 去比对 各个对象是否相等

3:结果

不需要遍历去重的 大致方法就是这样 可以根据具体的需求 适当改造 equals方法 以达到想要的效果
蓝莓之恋9527 2020-01-03
  • 打赏
  • 举报
回复
引用 3 楼 aw277866304 的回复:
推荐你看一下这篇文章:
https://blog.csdn.net/lin252552/article/details/81128296

谢谢你的推荐,存在两个问题,1.我们现在还是用的jdk7, 2.我这个涉及到25个属性,应该不太适合
CS_草祭先生 2020-01-03
  • 打赏
  • 举报
回复
推荐你看一下这篇文章: https://blog.csdn.net/lin252552/article/details/81128296
蓝莓之恋9527 2020-01-03
  • 打赏
  • 举报
回复
引用 1 楼 _沉浮_ 的回复:
什么叫有一个不相等,谁和谁不相等了

对应的属性啊,lot01和集合里的其它lot01比较
_沉浮_ 2020-01-03
  • 打赏
  • 举报
回复
什么叫有一个不相等,谁和谁不相等了

62,614

社区成员

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

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