根据一个list删除另个一个list中的数据

mier0713 2011-05-13 04:27:20
求较好的解决方案:
另个list :aList<Obj1> bList<Obj2>

Obj1和Obj2是不同的javaBean,有相同的字段id,如果aList中的一个对象id与bList中的任意对象id相等,删除。

不建议嵌套for循环查,希望大家能提供一个较好的方式解决,我的算法不太好,还请大家多指点
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mier0713 2011-07-29
  • 打赏
  • 举报
回复
只是因为工作原因一直没上csdn,呵呵,真抱歉,谢谢你提供的帮助撒
zfangla 2011-05-16
  • 打赏
  • 举报
回复
哥跟你讲,这种情况下应该使用设计模式中的adapter或者proxy,因为共用的组件你不能直接修改代码,那么就增加专门自己用的模块。adapter就是包装在aList<Obj1>之外的类,提供add, remove, refresh, get之类的方法,比如在add方法中,你可以自己定义代码发现和bList有重复ID就做特殊处理。那么之后你使用就只使用这个adapter,别直接操作那个aList了。
不过回头想想,哥的想法也太复杂了没必要。建议还是自己写个全局静态方法,对aList做检查,把重复的删除。要对两个表都过一遍,时间复杂度是O(N*M),检查的时候肯定还是要用到两个for嵌套,不过可以使用迭代器。

顺便说个,哥一直加你好友给你留言,你也不甩哥。哥挺伤心。
mier0713 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ticmy 的回复:]

重写bean的equals方法,然后用removeAll
[/Quote]
但是这两个bean并不是我一个人在用,不能随便重写equals,因为我只要是id对,不同对象也可以判为相等,这样不太好吧?
龙四 2011-05-13
  • 打赏
  • 举报
回复
重写bean的equals方法,然后用removeAll

50,549

社区成员

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

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