提出问题
map对象的简单复制问题????
解决问题
例一:map对象引用复制,只是简单的引用,解决不了问题
[code]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);
}
}结果:
立即学习“Java免费学习笔记(深入)”;
[code]{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA, B=B}例二:Map中的putAll实现简单类型的复制
[code]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);
}
}结果:
立即学习“Java免费学习笔记(深入)”;
[code]{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA}
{AA=AA, A=A, AAA=AAA, B=B}例三:map中putAll只是浅复制
[code]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中元素的值
[code]{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以上就是Java之Map对象复制小例子的内容,更多相关内容请关注PHP中文网(www.php.cn)!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号