【发布时间】:2017-06-20 15:43:51
【问题描述】:
我尝试了所有方法,但总是引用前一个。
mListPreviousData = new ArrayList<>();
for (int i = 0; i < mAddedList.size(); i++) {
mListPreviousData.add(mAddedList.get(i));
}
【问题讨论】:
-
只做 mListPreviousData = (ArrayList
) mAddedList.clone();您需要转换为您的数组列表类型 -
两个arrayList的类型相同,这就是它引用前一个的原因
-
您可以使用this 库或通过构造函数获取shallow 副本。
-
如果您不想通过克隆列表对象来创建两个单独的列表,那么您需要在循环中每次创建数据列表项,然后添加到您的 mListPreviousData 列表中。意味着您需要创建新的对象每次。