我遇到的问题是,在更改原始列表内容时,临时列表也会被修改。预期结果应为“使用原始文档”。

public static void main(String[] args) {

        List<Employ> e = new ArrayList<Employ>();
        e.add(new Employ("Employ Original"));
        //
        List<Employ> exList = new ArrayList<>(e);
        e.get(0).name = "Employ Modified";

        // Result should be 'Employ Original'
        System.out.println("" + exList.get(0).name);
    }

    public static class Employ {
        public String name;

        public Employ(String str) {
            this.name = str;
        }
    }

最佳答案

如果要复制,则需要克隆原始对象。 ArrayList只为新列表创建新的指针。指针仍然仅指向原始对象。

10-06 09:38