[英]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.