В моей бизнес-логике я хочу полностью заменить один список другим списком.Заменить один список массивов другим списком
Подходит ли подход ниже?
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