【发布时间】:2016-03-24 05:30:24
【问题描述】:
在我的业务逻辑中,我想用另一个列表完全替换一个列表。
下面的方法正确吗?
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);
}
}
}
这似乎工作正常,但我想知道是否在某些用例中,它可能不起作用。
【问题讨论】:
-
它是正确的,并且会一直工作
-
您的代码没有对列表执行任何特定操作。它只是显示变量的对象引用被不同的对象引用覆盖。如果您尝试更新现有列表中的值,那不是您的代码正在做的事情。如果您希望代码中引用该列表的其他位置可以看到新值,则不会发生这种情况。根据您上面的描述和孤立的代码示例,尚不清楚您要解决什么问题,以及您的解决方案是否有效。
-
其实这个问题是stackoverflow.com/questions/3823398/…(和其他几个)的重复。
标签: java list arraylist collections