欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2020-10-05 21:32:08|栏目:JAVA代码|点击:

对于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,每次都是不同的指针,

所以编码的时候要注意了。

上一篇:Spring Security OAuth2 token权限隔离实例解析

栏    目:JAVA代码

下一篇:Java中的可变参数常见用法实例总结

本文标题:Java集合Map的clear与new Map区别详解

本文地址:http://www.codeinn.net/misctech/7049.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有