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



