如何从ArrayList中移除对象后返回对象?
问题描述:
我正在考虑这样做,但我不确定是否分配参考温度在移除后仍然有效。如何从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的垃圾收集器在运行时会处理所有解除引用的对象。请参阅以下链接以获取更多信息:How Garbage Collection works in Java,特别是当某个对象变成垃圾收集合格条件时。
ArrayList#remove
返回已移除的元素(如果有的话),因此您也可以仅执行return getBoxes().remove(index)
。
答
List.remove()
移除的对象不坏。
去除任何集合的任何元素并不能否定它。
答
你还算不错,引用将有效
让我们举一个例子
一个---------对象
乙-------- -object
A和B两者都是对象的引用。
现在,说参考B无效
一个---------对象
B-- | - | - | - | - | - | -object(已失效)
参考文件A仍保持不变。
谢谢 Abhi
您的代码是正确的。但是,路易Wasserman的答案是更干净。作为建议,阅读API以优化代码,当你知道它们的工作方式时,Java中的某些功能可能会很棒。 – Charliemops 2012-04-24 16:36:38