减少arraylist的大小

use*_*221 -1 java arraylist

嗨,我有一个问题,在下面的代码中我们需要写n--;吗?

        int n = pointList.size();
    for(int i=pointList.size()-1;i>=0;i--){
        for(int j=0;j<list.size();j++){
            if(pointList.get(i).equals(list.get(j))){
                pointList.remove(i);
                n--;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

list也是一个arrayList.谢谢.

Pow*_*ord 6

ArrayList由一个以固定大小开始的数组支持,只有在需要更大的大小时才调整大小.据我所知,你只能缩小ArrayList后备存储的大小trimToSize()

如果商店的大小很重要,请考虑使用LinkedList.

注意:

如果我正确地阅读了您的代码,您可以替换您发布的所有代码:

pointList.removeAll(list);
Run Code Online (Sandbox Code Playgroud)

  • @Paul:怎么样?从变量名称,两个都是列表,并从[文档](http://download.oracle.com/javase/6/docs/api/java/util/Collection.html#remove%28java.lang.Object% 29)`Collection`的`remove`方法,它使用这个逻辑来比较它们:`(o == null?get(i)== null:o.equals(get(i)))` (2认同)
  • @Paul:"不同的东西"是什么意思.列表中的元素都来自相同的类型.他想从列表中的pointList中删除每个元素...... (2认同)