我有一个 ArrayList
的字符串,假设 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
。
我怎样才能防止这种情况发生?
最佳答案
据我所知,有两种方法可以解决您的问题,
创建新的
ArrayList
并使用循环添加originalArrayList
的每个元素(不推荐,因为不必要的内存消耗任务)克隆
originalArrayList
到tempArrayList
。
在新 ArrayList 中添加每个元素看起来像这样
ArrayList<String> tempArrayList = new ArrayList<>();
for (String temp : originalArrayList) {
tempArrayList.add(temp);
}
克隆 ArrayList
看起来像这样我会推荐
ArrayList<String> tempArrayList = (ArrayList<String>) originalArrayList.clone();
关于java - 如何在不影响原始元素的情况下更改 It's duplicate 中的 ArrayList 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692327/