![](/img/trans.png)
[英]ArrayList IndexOutOBoundsException after removing an object from ArrayList
[英]How to return an object after removing it from an ArrayList?
我想这样做,但是我不确定分配的参考温度是否在删除后仍然有效。
public Box removeBox(int index)
{
Box temp=getBoxes().get(index);//ArrayList.get
getBoxes().remove(index);
return temp;
}
这很好,虽然return getBoxes().remove(index)
会在一行中做同样的事情。
是的,这是一种有效的方式。 Java使用值而不是引用。
是的,引用仍然有效,因为已经存在对它的引用(您刚刚定义的temp
变量)。 JVM的垃圾收集器在运行时将处理所有解除引用的对象。 有关更多信息,请参阅此链接: 垃圾收集如何在Java中工作 ,特别是当对象符合垃圾收集条件时 。
ArrayList#remove
return getBoxes().remove(index)
返回已删除的元素(如果有),因此您也可以return getBoxes().remove(index)
。
List.remove()
不会使删除的对象失效。
从任何Collection中删除任何元素都不会使其无效。
你很棒,参考将是有效的
让我们举个例子
一---------对象
乙---------对象
A和B都是Object的引用。
现在,说参考B无效
一---------对象
B - | - | - | - | - | - | -Object(无效)
参考文献A仍然完好无损。
谢谢阿比
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.