栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础:复制的两种方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础:复制的两种方法

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.map复制

有关于hashmap的复制,在日常开发中,使用也比较多。主要有=,clone,putAll,但是他们都是浅复制。

public class CopyMapAssignTest {
    public static void main(String[] args) {
 
        Map userMap = new HashMap<>();
 
        userMap.put(1, new User("jay", 26));
        userMap.put(2, new User("fany", 25));
 
        //Shallow clone
        Map clonedMap = userMap;
 
        //Same as userMap
        System.out.println(clonedMap);
 
        System.out.println("nChanges reflect in both maps n");
 
        //Change a value is clonedMap
        clonedMap.get(1).setName("test");
 
        //Verify content of both maps
        System.out.println(userMap);
        System.out.println(clonedMap);
    }
}

运行结果:

{1=User{name='jay', age=26}, 2=User{name='fany', age=25}}
 
Changes reflect in both maps 
 
{1=User{name='test', age=26}, 2=User{name='fany', age=25}}
{1=User{name='test', age=26}, 2=User{name='fany', age=25}}

从运行结果看出,对cloneMap修改,两个map都改变了,所以=是浅复制。

2.list复制

两个list中的数据相同,但是地址值也相同。A改变了内容B中也会改变内容,B改变了A同样会改变,浅复制使用:

List> list = new ArrayList>();
List> list2 = deepCopy(list);
list2.addAll(list);

以上就是java中使用map和list进行复制的方法,相信小伙伴们已经尝试过代码了,其他看完理论部分的小伙伴也要行动起来啦。更多Java学习指路:js教程


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/15287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号