2

このようにしようと思っていたのですが、基準温度が割り当てられているかどうかは、削除後も有効かどうかわかりません。

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

5 に答える 5

9

それは問題return getBoxes().remove(index)ありませんが、1 行で同じことを行います。

于 2012-04-24T16:07:58.300 に答える
0

tempはい、それへの参照 (定義したばかりの変数)が既に存在するため、参照は引き続き有効です。JVM のガベージ コレクターは、実行時に参照解除されたすべてのオブジェクトを処理します。詳細については、このリンクを参照してください: How Garbage Collection works in Java、特にWhen an Object become Eligible for Garbage Collection .

ArrayList#remove削除された要素があればそれを返すので、単に を実行することもできますreturn getBoxes().remove(index)

于 2012-04-24T16:09:06.010 に答える
0

List.remove()削除されたオブジェクトを無効にしません。

Collection から要素を削除しても、要素が無効になることはありません。

于 2012-04-24T16:09:14.437 に答える
0

はい、それは有効な方法です。Java は、参照ではなく値を操作します。

于 2012-04-24T16:07:07.377 に答える
0

あなたはうまくいっています、参照は有効になります

例を見てみましょう

A---------オブジェクト

B--------オブジェクト

A と B はどちらも Object の参照です。

ここで、参照 B が無効化されたとします。

A---------オブジェクト

B--|-|-|-|--|-|-オブジェクト (無効)

参照 A はそのまま残ります。

ありがとうございます

于 2012-04-24T16:28:01.423 に答える