我遇到的问题是,在更改原始列表内容时,临时列表也会被修改。预期结果应为“使用原始文档”。
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只为新列表创建新的指针。指针仍然仅指向原始对象。