java - 将一个数组列表替换为另一列表

标签 java list arraylist collections

在我的业务逻辑中,我想用另一个列表完全替换一个列表。

下面的方法正确吗?

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);
        }
    }
}

这似乎工作正常,但我想知道在某些用例中它是否可能不起作用。

最佳答案

如果我正确理解你想要做什么,那么呢

values.clear(); // delete original contents in the list
values.addAll(valuesNew); // insert everything in the new list

从 @nbrooks 和其他人的答案中添加更多上下文: 覆盖引用并不总是一种选择,坦率地说,对集合进行两次迭代的低效率在实践中几乎总是无关紧要的。如果您需要保留相同的列表实例(因为它在代码中的其他位置被引用),则覆盖变量不会更新其他位置。

关于java - 将一个数组列表替换为另一列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36193822/

相关文章:

Java:字符串到整数数组

java - Appium 测试 Android 混合移动应用程序

c# - 获取格式错误的 SOAP 响应

c++ - 列表迭代器功能障碍

java - 为什么我的ArrayList 是空的?

java - 在 Java 中编辑字符串 boolean 值和整数的 ArrayList

java.util.Timer - 如何正确使用?

java - 带选项卡的 JFace 对话框

java - Java中通过分隔符行分割文件

python - Python-从二进制文件读取时如何删除 'b'?