ArrayList去重复问题

卡卡吉利 2013-08-14 03:16:24
一个对象E的ArrayList<E>,长度比较大,百万级,要根据对象E的的两个元素a,b去重复,也就是当(a1==a2)&&(b1==b2)时判定为重复,也可能有第三个元素,怎么写速度快?
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
右手嘚温暖 2013-08-14
  • 打赏
  • 举报
回复
如果您要是用这种判定,可以用while循环或者是Map,while循环速度比较快,map可以确保key唯一。
末日哥 2013-08-14
  • 打赏
  • 举报
回复
引用 4 楼 AA5279AA 的回复:
[quote=引用 1 楼 fudongrifdr 的回复:] 对象E的的两个元素是什么意思
对象E的两个成员变量的意思。 放入HashSet里面,重写equals方法。 我感觉这个就没有算法可言了,既然是list,就只能遍历一遍了。。把每一个元素都放入set里面,重的自然就没了 [/quote] 和我的想法一样,不过应该还得重写hashCode方法,貌似Set是借助Map,利用Map中Key的唯一性,来保证不出现重复值。
失落夏天 2013-08-14
  • 打赏
  • 举报
回复
引用 1 楼 fudongrifdr 的回复:
对象E的的两个元素是什么意思
对象E的两个成员变量的意思。 放入HashSet里面,重写equals方法。 我感觉这个就没有算法可言了,既然是list,就只能遍历一遍了。。把每一个元素都放入set里面,重的自然就没了
zyrobert 2013-08-14
  • 打赏
  • 举报
回复
重写E的equals方法 a和b相等时就返回true 插入对象e时 先list.contain(e) 如果true就不要插入
卡卡吉利 2013-08-14
  • 打赏
  • 举报
回复
引用 1 楼 fudongrifdr 的回复:
对象E的的两个元素是什么意思
public class E{ private int a; private int b; private int c; private String d; …………………… }
末日哥 2013-08-14
  • 打赏
  • 举报
回复
对象E的的两个元素是什么意思

50,549

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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