我有一个ArrayListString,让我们说originalArrayList一些值
final ArrayList<String> originalArrayList = new ArrayList<>();
originalArrayList.add("value1");
originalArrayList.add("value2");
originalArrayList.add("value3");
originalArrayList.add("value4");
originalArrayList.add("value5");
Run Code Online (Sandbox Code Playgroud)
我originalArrayList在内部类中复制了它并删除了一些元素
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<String> tempArrayList = originalArrayList;
tempArrayList.remove(0); //Remove an element
}
});
Run Code Online (Sandbox Code Playgroud)
但是,这是影响原来ArrayList这是originalArrayList在我的情况.
我怎样才能防止这种情况发生?
据我所知,有两种方法可以解决您的问题,
创建新的ArrayList并添加originalArrayList使用循环的每个元素(不推荐,因为无意识的内存消耗任务)
克隆originalArrayList到tempArrayList.
在新的ArrayList中添加每个元素看起来像这样
ArrayList<String> tempArrayList = new ArrayList<>();
for (String temp : originalArrayList) {
tempArrayList.add(temp);
}
Run Code Online (Sandbox Code Playgroud)
克隆ArrayList我将推荐的这样的外观
ArrayList<String> tempArrayList = (ArrayList<String>) originalArrayList.clone();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
721 次 |
| 最近记录: |