我有一个ArrayList
String,可以说originalArrayList
一些值
final ArrayList<String> originalArrayList = new ArrayList<>();
originalArrayList.add("value1");
originalArrayList.add("value2");
originalArrayList.add("value3");
originalArrayList.add("value4");
originalArrayList.add("value5");
我originalArrayList
在内部类中复制了此内容,并删除了一些元素
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<String> tempArrayList = originalArrayList;
tempArrayList.remove(0); //Remove an element
}
});
但是,这是影响原来ArrayList
这是originalArrayList
在我的情况。
如何防止这种情况发生?
据我了解,有两种方法可以解决您的问题,
创建new ArrayList
并添加originalArrayList
using循环的每个元素(不建议使用,因为不必要的内存消耗任务)
克隆originalArrayList
到tempArrayList
。
在新的ArrayList中添加每个元素看起来像这样
ArrayList<String> tempArrayList = new ArrayList<>();
for (String temp : originalArrayList) {
tempArrayList.add(temp);
}
克隆这样的ArrayList
外观,我会推荐
ArrayList<String> tempArrayList = (ArrayList<String>) originalArrayList.clone();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句