gpt4 book ai didi

java - 如何在 Java 中复制 HashMap(不是浅拷贝)

转载 作者:IT老高 更新时间:2023-10-28 21:02:47 25 4
gpt4 key购买 nike

我需要复制 HashMap<Integer, List<MySpecialClass> >但是当我更改副本中的某些内容时,我希望原件保持不变。即当我从 List<MySpecialClass> 中删除某些内容时从它留在List<MySpecialClass>的副本中在原来的。

如果我理解正确,这两种方法创建的只是浅拷贝,这不是我想要的:

mapCopy = new HashMap<>(originalMap);
mapCopy = (HashMap) originalMap.clone();

我说的对吗?

有没有比遍历所有键和所有列表项并手动复制更好的方法?

最佳答案

不幸的是,这确实需要迭代。但这对于 Java 8 流来说非常简单:

mapCopy = map.entrySet().stream()
.collect(Collectors.toMap(e -> e.getKey(), e -> List.copyOf(e.getValue())))

关于java - 如何在 Java 中复制 HashMap(不是浅拷贝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com