android中的数组列表引用问题

时间:2014-08-27 12:08:10

标签: android arraylist

我有两个对象的arrayList。我想让他们分开。我将内容从一个数组列表复制到另一个数组。但是当我改变一个数组列表的内容时。两者都发生了变化。请帮忙。我尝试克隆一切,设置方法。但没有任何效果

2 个答案:

答案 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);