我有两个对象的arrayList。我想让他们分开。我将内容从一个数组列表复制到另一个数组。但是当我改变一个数组列表的内容时。两者都发生了变化。请帮忙。我尝试克隆一切,设置方法。但没有任何效果
答案 0 :(得分:2)
这称为深层复制,实际上会将新对象插入新列表中。确保clone()默认适用于您的对象,或者覆盖正确:
// Old list declaration
ArrayList<Object> mOldList = new ArrayList<Object>)();
// New List declaration
ArrayList<Object> mNewList = new ArrayList<Object>();
for(Object o : mOldList) {
// Iterate over the old list and clone the elements into the new list
mNewList.add(o.clone());
}
答案 1 :(得分:0)
当你想将arrayList复制到其他时,你应该克隆它:
(它适用于收藏品)
ArrayList<String> b = new ArrayList<String>();
ArrayList<String> a = b.clone();
或者像第一个数组那样新建它:
(copy-constructors方式,更好的方式)
ArrayList<String> b = new ArrayList<String>();
ArrayList<String> a = new ArrayList(a);