2012-04-24 148 views
2

我正在考虑这样做,但我不确定是否分配参考温度在移除后仍然有效。如何从ArrayList中移除对象后返回对象?

public Box removeBox(int index) 
{ 
Box temp=getBoxes().get(index);//ArrayList.get 
getBoxes().remove(index); 
return temp; 
} 
+0

您的代码是正确的。但是,路易Wasserman的答案是更干净。作为建议,阅读API以优化代码,当你知道它们的工作方式时,Java中的某些功能可能会很棒。 – Charliemops 2012-04-24 16:36:38

回答

9

这很好,但return getBoxes().remove(index)会做同样的事情在一个单一的线。

0

是的,这是一个有效的方法。 Java使用值而不是引用。

0

是,参考仍将是有效的,因为已经存在对它的引用(你刚才定义的temp变量)。 JVM的垃圾收集器在运行时会处理所有解除引用的对象。请参阅以下链接以获取更多信息:How Garbage Collection works in Java,特别是当某个对象变成垃圾收集合格条件时

ArrayList#remove返回已移除的元素(如果有的话),因此您也可以仅执行return getBoxes().remove(index)

0

List.remove()移除的对象不坏。

去除任何集合的任何元素并不能否定它。

0

你还算不错,引用将有效

让我们举一个例子

一个---------对象

乙-------- -object

A和B两者都是对象的引用。

现在,说参考B无效

一个---------对象

B-- | - | - | - | - | - | -object(已失效)

参考文件A仍保持不变。

谢谢 Abhi