Java之Map对象复制小例子
2016-08-11 21:45
381 查看
Java之Map对象复制小例子
标签: java2016-05-19 22:34 73人阅读 评论(0) 收藏 举报
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/b367fdce88ee208da19a58e7fab01f44.jpg)
分类:
一步一步学Java(23)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/b16356edc9d65f9de5798055c2b20c3c.jpg)
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
开心一笑
提出问题
Map对象的简单复制问题????解决问题
例一:map对象引用复制,只是简单的引用,解决不了问题package com.evada.de; import java.util.HashMap; import java.util.Map; /** * Created by Ay on 2016/5/11. */ public class RedisTest { public static void main(String[] args) { Map<String,String> mapAA = new HashMap<>(); mapAA.put("A", "A"); mapAA.put("AA","AA"); mapAA.put("AAA","AAA"); System.out.println(mapAA); //用mapBB对象去引用mapAA Map<String,String> mapBB = mapAA; mapBB.put("B","B"); System.out.println(mapBB); } }
结果:
{AA=AA, A=A, AAA=AAA} {AA=AA, A=A, AAA=AAA, B=B}
例二:Map中的putAll实现简单类型的复制
package com.evada.de; import java.util.HashMap; import java.util.Map; /** * Created by Ay on 2016/5/11. */ public class RedisTest { public static void main(String[] args) { Map<String,String> mapAA = new HashMap<>(); mapAA.put("A", "A"); mapAA.put("AA","AA"); mapAA.put("AAA","AAA"); System.out.println(mapAA); Map<String,String> mapBB = new HashMap<>(); //把mapAA的元素复制到mapBB中 mapBB.putAll(mapAA); mapBB.put("B","B"); //打印出的mapAA应该不受影响 System.out.println(mapAA); //打印出的mapBB应该多了元素B System.out.println(mapBB); } }
结果:
{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA} {AA=AA, A=A, AAA=AAA, B=B}
例三:map中putAll只是浅复制
package com.evada.de; import java.util.HashMap; import java.util.Map; class Person{ private String id,name; Person(String id,String name){ this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } /** * Created by Ay on 2016/5/11. */ public class RedisTest { public static void main(String[] args) { Map<String,Person> mapAA = new HashMap<>(); mapAA.put("A",new Person("AID","AY")); mapAA.put("B",new Person("BID","AL")); System.out.println(mapAA); Map<String,Person> mapBB = new HashMap<>(); /** 把mapAA中的元素复制到mapBB中 **/ mapBB.putAll(mapAA); /** 修改mapBB中A元素值,如果mapAA中的元素A受影响,说明是浅复制 **/ Person person = mapBB.get("A"); person.setName("Ay_New"); System.out.println(mapBB); System.out.println("mapAA 的A元素value值:" + mapAA.get("A").getName()); } }
结果:从结果可以看出,打印mapAA 和mapBB,结果是一样的,说明putAll的复制自己简单的浅复制,
从最后一个结果,可再一次验证,因为改了mapBB中A元素的值,直接影响到mapAA中元素的值
{A=com.evada.de.Person@71bc1ae4, B=com.evada.de.Person@6ed3ef1} {A=com.evada.de.Person@71bc1ae4, B=com.evada.de.Person@6ed3ef1} mapAA 的A元素value值:Ay_New
如何实现深复制呢,可以看我的一篇关于《论clone深层复制和浅层复制》文章
读书感悟
来自《千余千寻》人生就是一列开往坟墓的列车,路途上会有很多站,很难有人可以自始至终陪着走完。当陪你的人要下车时,即使不舍也该心存感激,然后挥手道别。
不管前方的路有多苦,只要走的方向正确,不管多么崎岖不平,都比站在原地更接近幸福。
曾经发生过的事情不会忘记,只是想不起来而已。
其他
如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!相关文章推荐
- Java之Map对象复制小例子
- Java 小例子:根据 Map 对象的内容创建 JavaBean
- java Map 复制和对象的复制
- java hasmap对象的深复制实现:字节码复制和对象序列化成字符串复制比较。
- java 复制Map对象(深拷贝与浅拷贝)
- java中两个对象间的属性值复制,比较,转为map方法实现
- 看think in java 4th持有对象一章的Map小结,因为一个例子,重新总结下hashCode()和equals(),加深印象。
- jackson json字符串、map、java对象的转换例子
- java对象复制
- javascript实现的java里的Map对象
- java的对象复制 --整理总结版
- 关于Java复制对象的问题
- 2009年最后一博:关于 Java 中对象的复制
- java方式的将java对象以及list或者map转化为json数据
- 关于java对象复制
- 10.3.9例子“单词转换”map对象
- Java 中对象引用与复制
- 深入 JAVA对象的复制与比较
- 关于Java复制对象的问题
- 深入理解Java对象实例生成的例子!