私のビジネスロジックでは、あるリストを別のリストに完全に置き換えたいと思います。1つの配列リストを他のリストに置き換えてください
以下のアプローチは正しいですか?
public class TestListReplacement {
public static void main(String[] args) {
List<String> values= new ArrayList<String>();
values.add("a");
values.add("b");
values.add("c");
values.add("d");
values.add("e");
values.add("f");
List<String> valuesNew= new ArrayList<String>();
valuesNew.add("g");
valuesNew.add("h");
valuesNew.add("i");
valuesNew.add("j");
valuesNew.add("k");
values= valuesNew;
for(String val:values){
System.out.println(val);
}
}
}
これはうまくいくようですが、使用状況によっては動作しないことがあります。 、および参照を上書きすることは常にオプションではありません :
その正しいといつも動作します –
あなたのコードはリストに特定の何もしていません。単に、変数のオブジェクト参照が別のオブジェクト参照で上書きされていることを示しています。既存のリスト内の値を更新しようとしている場合、それはあなたのコードがやっていることではありません。新しい値を表示するためにそのリストを参照しているコード内の他の場所が必要な場合は、それは起こりません。上記の説明と孤立したコードサンプルに基づいて、どの問題を解決しようとしているのか、そしてソリューションが機能するかどうかは明確ではありません。 – nbrooks
実際、この質問はhttp://stackoverflow.com/questions/3823398/better-practice-to-re-instantiate-a-list-or-invoke-clear(およびその他の情報)の複製です。 – nbrooks