我面临一个问题,我有电话联系名单中的名单和电话号码。 我想将它复制到两个不同的静态列表中,以便我可以将它用于其他活动。我正在使用下面的代码,但它显示了我在检索数据时的最后列表引用 任何人指导我如何分别获取这两个对象的副本?
MyContacts.attackContacts = new ArrayList(phoneContacts);
Collections.copy(MyContacts.attackContacts,phoneContacts);
MyContacts.attackContacts.get(0).setType("attack");
MyContacts.medicalContacts = new ArrayList(phoneContacts);
Collections.copy(MyContacts.medicalContacts,phoneContacts);
MyContacts.medicalContacts.get(0).setType("medical");
System.out.println("attack" + MyContacts.attackContacts.get(0).getType() + " medical " + MyContacts.medicalContacts.get(0).getType());
// result "attack medical" "medical medical"
// it should show independent list results like "attack attack" "medical medical"
任何帮助,将不胜感激。
感谢回复任何例如或教程?我不知道它如此使用克隆每个列表将指向另一个新的参考,我会得到结果,因为我上面提到? – UMAR 2011-06-01 08:43:34
*每个列表都会指向另一个新的参考,我将得到如上所述的结果?*确切地说,你已经得到了它。增加了一个例子。 – aioobe 2011-06-01 08:44:59
我得到了正确的教程感谢您指出我http://www.java2s.com/Code/Java/Language-Basics/DeepCopyTest.htm – UMAR 2011-06-01 09:53:22