繁体   English   中英

安全地从Java ArrayList中删除项目

[英]Safely removing an item from a Java ArrayList

我有一个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()被反转? 我知道有(很多)其他方法来迭代某些东西,但我想知道发生了什么以及为什么。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM