【发布时间】:2020-05-15 07:24:53
【问题描述】:
我的问题是我想复制一个包含对象的 ArrayList。
之后我想更改“复制列表”中的对象而不更改源列表中的对象。
我已经试过了:
ArrayList<..> copy = new ArrayList<..>(sourceList);
Collections.copy(dest, src);
更具体的问题在这里:
ArrayList<Exon> regions1 = new ArrayList<>();
regions1.add(r1);
regions1.add(r2);
regions1.add(r3);
System.out.println("Reg 1");
for (Exon e : regions1) {
System.out.println(e.getStart());
}
ArrayList<Exon> copy = new ArrayList<>(regions1);
System.out.println("Copy");
for (Exon e : copy) {
e.setStart(2);
System.out.println(e.getStart());
}
System.out.println("Reg 1 - untouched");
for (Exon e : regions1) {
System.out.println(e.getStart());
}
我得到的输出是:
Reg 1
5
15
100
Copy
2
2
2
Reg 1
2
2
2
我想要的输出是:
Reg 1
5
15
100
Copy
2
2
2
Reg 1
5
15
100
【问题讨论】:
标签: java arrays object arraylist