问题是这样的,我有一个大的list A,不管是Arraylist还是linkedlist, 然后有一个小的list B, 现在要从A中删除掉B中有的数据,最简单的调用的方法当然就是AList.removeAll(BList);我也 这么做的,结果这个地方让我付出的惨痛的代价,当AList.size到20万,blist.size到2万的时候,这个操作要花我近一分钟,当Alist.size到100万的时候,这个时间就更多了,请问有什么比较高效的方法一次性从list中删除掉大量的数据吗?

解决方案 »

  1.   

    那什么样的比较好呢? map, array?
      

  2.   

    大的数据使用linkedlist或者linkedMap
    这样才可以节约开销
    太好的办法没有
      

  3.   

    linkedlist我试过了,也很慢, 问题解决了,谢谢大家关心啊,我从ArrayList继承了一个自己的类,然后在里面实现了批量删除,现在删除一次不到一秒钟,真爽啊还是C语言好,native method方法快
      

  4.   

    native method方法  以后移植的话 会不会很麻烦