首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用对象克隆Hashmap

引用对象克隆Hashmap
EN

Stack Overflow用户
提问于 2011-11-21 04:42:02
回答 2查看 904关注 0票数 0

我想克隆一个以对象为值的HashMap。它是如何工作的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-21 05:21:11

你是指像这样的东西吗:

代码语言:javascript
复制
public static <K, V extends MyObject> 
              HashMap<K, V> CloneHashMap (HashMap<K, V> input) {
    HashMap<K, V> output = new HashMap<K, V>();
    for(K key: input.keySet()) {
        output.put(key, (V)(input.get(key).clone()));           
    }
    return output;
}

其中MyObject是一个可克隆的对象:

代码语言:javascript
复制
public class MyObject implements Cloneable {

    @Override
    public Object clone() {     
        try {
            return super.clone();
        } catch (CloneNotSupportedException e) {            
            return null;
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2011-11-21 10:24:49

不清楚你在问什么。您是否正在尝试克隆HashMap及其所有内容?或者您只是想创建Map的副本?

如果您只是想要一个Map的副本,那么可以使用HashMap上的copy构造函数。

代码语言:javascript
复制
HashMap copy = new HashMap(sourceMap);

这将使用与源映射相同的键和值对象创建第二个映射。如果你想要一个深度克隆,意味着你想要新的但等价的对象,你需要做一些类似@Tudor建议的事情

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

https://stackoverflow.com/questions/8204565

复制
相关文章

相似问题

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