安全地从Java ArrayList中删除项目

时间:2013-06-22 12:55:35

标签: java arraylist nullpointerexception

我有一个看起来像这样的ArrayList: Index1:Item1 Index2:Item2 Index3:Item3

如果删除项目(ArrayList.remove(2)),我会得到类似的内容:

Index1: Item1
Index2: Item2
Index3: null

使用for-loop对此进行迭代,可以得到null pointer。 所以我使用ArrayList.trimToSize(),它给了我:

Index1: Item1
Index2: Item2

喜悦。除了for loop仍然给我一个null pointer。如果我用try-catch包围它并检查它,看起来Java已将我的ArrayList扩展回其原始大小,完成null

Index1: Item1
Index2: Item2
Index3: null

这里发生了什么?为什么我的trimToSize()被撤销了? 我知道有(很多)其他方法来迭代某些东西,但我想知道发生了什么以及为什么。

1 个答案:

答案 0 :(得分:2)

从我看到的内容,您将删除实际对象上=null的项目。这是错误ArrayList有一个自己的remove()方法,您应该使用它。它会自动删除对象并减小列表的大小。