开发者社区> 问答> 正文

如何在不影响原始对象值的情况下创建哈希映射对象的副本

我正在尝试制作一个哈希图对象并从另一个哈希图分配它的值,但是我发现副本上的更改影响了原始对象的值

如何使副本不影响原件?

这是我的代码

HashMap<Integer, Integer> productOfferLimitsForCart = new HashMap<>();
  productOfferLimitsForCart .put(Integer.valueOf(liveModel.getId()), 0);

  HashMap<Integer, Integer> OfferLimitsForCalculations = new HashMap<>();
  OfferLimitsForCalculations = productOfferLimitsForCart;

展开
收起
垚tutu 2019-12-19 16:38:08 549 0
1 条回答
写回答
取消 提交回答
  • #include

    使用复制构造函数:

    HashMap<Integer, Integer> OfferLimitsForCalculations = new HashMap<>(productOfferLimitsForCart);
    
    

    进行作业时

    OfferLimitsForCalculations = productOfferLimitsForCart;
    
    

    这两个变量都引用相同的HashMap实例(并且Map所引用的原始实例OfferLimitsForCalculations不再被任何变量引用)。

    2019-12-19 16:38:22
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
用计算和数据去改变整个世界 立即下载
对象的生命期管理 立即下载
重新定义计算的边界 立即下载