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);
}

大家可以猜猜上面代码执行的结果。与你们猜想的一致么。

Java集合Map的clear与new Map区别详解

解释:

方案一,我们只是把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
  • asp之家 软件编程 m.aspxhome.com