このようにしようと思っていたのですが、基準温度が割り当てられているかどうかは、削除後も有効かどうかわかりません。
public Box removeBox(int index)
{
Box temp=getBoxes().get(index);//ArrayList.get
getBoxes().remove(index);
return temp;
}
このようにしようと思っていたのですが、基準温度が割り当てられているかどうかは、削除後も有効かどうかわかりません。
public Box removeBox(int index)
{
Box temp=getBoxes().get(index);//ArrayList.get
getBoxes().remove(index);
return temp;
}
それは問題return getBoxes().remove(index)
ありませんが、1 行で同じことを行います。
temp
はい、それへの参照 (定義したばかりの変数)が既に存在するため、参照は引き続き有効です。JVM のガベージ コレクターは、実行時に参照解除されたすべてのオブジェクトを処理します。詳細については、このリンクを参照してください: How Garbage Collection works in Java、特にWhen an Object become Eligible for Garbage Collection .
ArrayList#remove
削除された要素があればそれを返すので、単に を実行することもできますreturn getBoxes().remove(index)
。
List.remove()
削除されたオブジェクトを無効にしません。
Collection から要素を削除しても、要素が無効になることはありません。
はい、それは有効な方法です。Java は、参照ではなく値を操作します。
あなたはうまくいっています、参照は有効になります
例を見てみましょう
A---------オブジェクト
B--------オブジェクト
A と B はどちらも Object の参照です。
ここで、参照 B が無効化されたとします。
A---------オブジェクト
B--|-|-|-|--|-|-オブジェクト (無効)
参照 A はそのまま残ります。
ありがとうございます