当前页面: 开发资料首页 → J2SE 专题 → List.removeall的效率问题?
List.removeall的效率问题?
摘要: List.removeall的效率问题?
问题是这样的,我有一个大的list A,不管是Arraylist还是linkedlist, 然后有一个小的list B, 现在要从A中删除掉B中有的数据,最简单的调用的方法当然就是AList.removeAll(BList);我也 这么做的,结果这个地方让我付出的惨痛的代价,当AList.size到20万,blist.size到2万的时候,这个操作要花我近一分钟,当Alist.size到100万的时候,这个时间就更多了,请问有什么比较高效的方法一次性从list中删除掉大量的数据吗?
这么多数据,没有什么能让你飞快的办法。老思路,换个数据结构。
那什么样的比较好呢? map, array?
大的数据使用linkedlist或者linkedMap
这样才可以节约开销
太好的办法没有
linkedlist我试过了,也很慢,
问题解决了,谢谢大家关心啊,我从ArrayList继承了一个自己的类,然后在里面实现了批量删除,现在删除一次不到一秒钟,真爽啊
还是C语言好,native method方法快
晕,楼主怎么弄的啊?贴出来学习下!
native method方法 以后移植的话 会不会很麻烦