List.removeall的效率问题?

平庸老鱼 2006-09-04 06:45:43
问题是这样的,我有一个大的list A,不管是Arraylist还是linkedlist, 然后有一个小的list B, 现在要从A中删除掉B中有的数据,最简单的调用的方法当然就是AList.removeAll(BList);我也 这么做的,结果这个地方让我付出的惨痛的代价,当AList.size到20万,blist.size到2万的时候,这个操作要花我近一分钟,当Alist.size到100万的时候,这个时间就更多了,请问有什么比较高效的方法一次性从list中删除掉大量的数据吗?
...全文
937 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2006-09-05
  • 打赏
  • 举报
回复
这么多数据,没有什么能让你飞快的办法。老思路,换个数据结构。
平庸老鱼 2006-09-05
  • 打赏
  • 举报
回复
linkedlist我试过了,也很慢,

问题解决了,谢谢大家关心啊,我从ArrayList继承了一个自己的类,然后在里面实现了批量删除,现在删除一次不到一秒钟,真爽啊

还是C语言好,native method方法快
mdxk 2006-09-05
  • 打赏
  • 举报
回复
大的数据使用linkedlist或者linkedMap
这样才可以节约开销
太好的办法没有
平庸老鱼 2006-09-05
  • 打赏
  • 举报
回复
那什么样的比较好呢? map, array?
yegaofei 2006-09-05
  • 打赏
  • 举报
回复
native method方法 以后移植的话 会不会很麻烦
iambic 2006-09-05
  • 打赏
  • 举报
回复
晕,楼主怎么弄的啊?贴出来学习下!

62,615

社区成员

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

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