java 将Map拷贝到另一个Map对象当中

本文介绍了在Java中如何将一个Map对象的所有键值对拷贝到另一个Map对象,确保拷贝后的Map内容不随源Map变化,并讨论了深拷贝和浅拷贝的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

java 将Map拷贝到另一个Map对象当中

CreateTime--2018年6月4日09点46分

Author:Marydon

1.需求说明

  将一个MapA对象中所有的键值对完全拷贝到另一个MapB对象中;

  另一个MapB对象中原来的键值保持不变(不受影响);

  拷贝成功后MapB对象当中的内容将不再随着MapA中内容的变化而变化。

2.代码实现

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * 复制map对象
 * @explain 将paramsMap中的键值对全部拷贝到resultMap中;
 * paramsMap中的内容不会影响到resultMap(深拷贝)
 * @param paramsMap
 *     被拷贝对象
 * @param resultMap
 *     拷贝后的对象
 */
public static void mapCopy(Map paramsMap, Map resultMap) {
    if (resultMap == null) resultMap = new HashMap();
    if (paramsMap == null) return;

    Iterator it = paramsMap.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry entry = (Map.Entry) it.next();
        Object key = entry.getKey();
        resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : "");

    }
}

3.测试

public static void main(String[] args) {
    Map<String, String> map = new HashMap<String, String>(1);
    map.put("name", "Marydon");
    Map<String, Object> map2 = new HashMap<String, Object>(1);
    map2.put("age", 20);
    // 测试一:是否实现拷贝
    mapCopy(map2, map);
    System.out.println(map);// {age=20, name=Marydon}
    System.out.println(map2);// {age=20}
    // 测试二:拷贝后的map对象是否受原map对象的影响
    map2.clear();
    System.out.println(map);// {age=20, name=Marydon}
    System.out.println(map2);// {}
    
}

  

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值