首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心java基础知识

核心java基础知识
EN

Stack Overflow用户
提问于 2018-04-18 09:30:51
回答 1查看 95关注 0票数 1

如何通过不真正更新str1str来更新唯一的str2?为什么str2中的更改是在更新str1str?是因为对象引用吗?

代码语言:javascript
复制
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class test {

    List<HashMap<String, String>> str;

    public static void main(String[] args) {
        Map<String, String> hmap = new HashMap<String, String>();
        hmap.put("1", "s1");
        hmap.put("2", "s2");
        test testobj = new test();
        testobj.str = new ArrayList<HashMap<String, String>>();
        testobj.str.add((HashMap<String, String>) hmap);
        testing(testobj.str);
    }

    static void testing(List<HashMap<String, String>> str) {

        List<HashMap<String, String>> str2 = new ArrayList<HashMap<String, String>>();
        List<HashMap<String, String>> str1 = str;
        str2.add(str1.get(0));
        str2.get(0).put("1", "new");

        System.out.println(str);
        System.out.println(str1);
        System.out.println(str2);

    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-04-18 09:58:48

您必须创建原始List的副本,如下所示:

代码语言:javascript
复制
List<HashMap<String, String>> str1 = new ArrayList<>(str);

这将创建一个包含原始List中的所有元素的新ArrayList。这样,您将有两个单独的列表,其中包含其自己的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49889776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档