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
投稿

猜你喜欢

  • Java获取文件的路径及常见问题解决方案

    2023-04-16 04:24:15
  • DataBinding onClick的七种点击方式

    2021-12-08 01:23:22
  • 浅谈Java编程中string的理解与运用

    2021-05-31 22:15:44
  • 解决IDEA service层跳转实现类的快捷图标消失问题

    2022-09-03 06:38:00
  • Java动态代理四种实现方式详解

    2022-03-12 02:16:38
  • maven之packaging标签的使用

    2021-10-25 05:14:42
  • C#函数式编程中的标准高阶函数详解

    2021-06-09 06:27:07
  • Android控件gridview实现单行多列横向滚动效果

    2022-09-11 10:53:49
  • Java简单高效实现分页功能

    2022-05-24 13:56:02
  • Java京东面试题之为什么HashMap线程不安全

    2022-12-06 07:20:02
  • Java数据类型的全面剖析

    2022-07-09 06:51:38
  • android利用剪切板传递数据

    2022-06-24 06:37:40
  • Android基于google Zxing实现各类二维码扫描效果

    2022-04-10 17:28:59
  • Android自定义可循环的滚动选择器CycleWheelView

    2023-04-06 00:43:16
  • java文件上传下载代码实例

    2023-11-10 05:06:14
  • Java编程基础测试题分享

    2023-11-27 22:14:58
  • android实现简单底部导航栏

    2022-07-10 16:11:08
  • Android程序启动时出现黑屏问题的解决方法

    2022-07-06 05:16:39
  • Android生成带圆角的Bitmap图片

    2022-09-08 11:18:19
  • 解读@RabbitListener起作用的原理

    2021-08-04 12:58:59
  • asp之家 软件编程 m.aspxhome.com