java - 如何在不影响原始元素的情况下更改 It's duplicate 中的 ArrayList 元素?

标签 java android

我有一个 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 的每个元素(不推荐,因为不必要的内存消耗任务)

  • 克隆 originalArrayListtempArrayList

在新 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/

相关文章:

java - 我编写这个程序来查找给定输入是否是 2 的幂,这个程序不会运行非常大的数字,例如 10^18 左右。我应该怎么办

android - 单击时更改线性布局背景颜色

android - 发送 SOAP 请求

Android 房间 - 清除 sqlite_sequence 不起作用

Android 如何从 TabHost Activity 中将额外内容添加到 Activity 中?

android - 闭源 Android 库分发

java - 在 websphere IBM 中错误地将 varchar 转换为 date

java - Freemarker压缩没有空格的single_line

java - 根据另一个列表流式传输和过滤一个列表

java - 如何配置使用 Kalium 的 Java 库在 Mac OSX 和 Android 上运行?