Java集合Map的clear与new Map区别详解
作者:Erneste 时间:2022-03-21 15:41:39
对于clear与new Map的区别。我们首先来看一个例子,本例子是我在实际开发中遇到的,需求就是讲map放入到list中,说白了就是list转map,有两种实现方式,分别是:
// 方案一
Map<Integer, Integer> map1 = new HashMap<>();
List<Map<Integer, Integer>> list1 = new ArrayList<>();
for (int i = 0; i < 5; i++) {
map1.clear();
map1.put(i, i * 2);
list1.add(map1);
}
// 方案二
Map<Integer, Integer> map2 = null;
List<Map<Integer, Integer>> list2 = new ArrayList<>();
for (int i = 0; i < 5; i++) {
map2 = new HashMap<>();
map2.put(i, i * 2);
list2.add(map2);
}
大家可以猜猜上面代码执行的结果。与你们猜想的一致么。
解释:
方案一,我们只是把map.clear了(查看clear的源码,clear的作用是把map里每个属性设置为null,并把map的长度设置为0)。并没有销毁,map的指针还是存储在list里面了,所以后面新add到list里面的东西都是同一个map,都是指向同一个map,list里面存储的是map的指针;
方案二,不用我说了,每次创建新的map,每次都是不同的指针,
所以编码的时候要注意了。
来源:https://www.cnblogs.com/DDgougou/articles/10580385.html
标签:Java,clear,new,Map
0
投稿
猜你喜欢
elasticsearch索引index之engine读写控制结构实现
2021-12-22 00:08:07
Java面试题冲刺第二十三天--分布式
2023-09-24 07:30:43
flutter实现底部导航栏
2023-08-23 01:06:13
springboot手写一个自己的starter源码
2021-07-31 10:18:14
Java SSH 秘钥连接mysql数据库的方法
2022-07-11 21:23:18
Java如何实现登录token令牌
2022-05-19 16:58:11
微信小程序微信登录的实现方法详解(JAVA后台)
2023-08-29 12:37:25
java的泛型你真的了解吗
2022-07-25 09:40:06
JSON各种转换问题(json转List,json转对象等)
2021-09-28 08:53:45
java web服务器实现跨域访问
2023-09-17 06:55:08
JavaMail实现带附件的邮件发送
2021-10-21 15:00:09
Java二分查找算法实例详解
2022-07-09 14:33:55
关于在IDEA中SpringBoot项目中activiti工作流的使用详解
2022-12-11 01:24:28
Spring五大类注解读取存储Bean对象的方法
2023-11-09 22:07:07
浅谈Maven的安装及修改为阿里云下载依赖
2023-08-05 08:30:37
Javassist之一秒理解java动态编程
2023-11-09 09:36:33
java中匿名内部类详解
2022-10-06 14:56:56
java中sleep方法和wait方法的五个区别
2023-08-27 18:37:23
完美解决Android Studio集成crashlytics后无法编译的问题
2023-06-23 16:49:07
SpringBoot应用启动流程源码解析
2023-11-25 00:03:24