【发布时间】:2014-02-14 16:03:41
【问题描述】:
我有一个 Details 类型的 ArrayList 集合 1。我将它分配给另一个集合 2 以对其执行操作,以便它不会影响集合 1。但我看到集合 1 受到影响,因为引用了对象。 但我想拥有两个不同的集合,具有不同的内存引用 - 请帮助我。
细节类 -
public class Details implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private boolean enabled;
private int number;
public Details() {
}
public Details(int number, boolean enabled) {
this.enabled = enabled;
this.number = number;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public boolean getEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}
主类-
public static void main(String[] args) {
List<Details> detailsList = new ArrayList<Details>();
detailsList.add(new Details(10, false));
detailsList.add(new Details(20, false));
List<Details> newDetailsList = new ArrayList<Details>(detailsList);
for(Details d : newDetailsList) {
d.setEnabled(true);
d.setNumber(50);
}
for(Details d : detailsList) {
System.out.println("---" + d.getEnabled());
System.out.println("---" + d.getNumber());
}
}
输出 -
---true
---50
---true
---50
我从detailsList 创建了一个新集合newDetailsList 并对其进行了修改...我看到更改已应用于 detailsList 集合。我怎样才能避免这种情况
【问题讨论】:
标签: java collections