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

 更新时间:2020年04月08日 10:52:49   作者:Erneste  
这篇文章主要介绍了Java集合Map的clear与new Map区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于Java实现音频播放功能

    基于Java实现音频播放功能

    音频播放是现代应用程序中常见的一项功能,无论是在桌面应用、游戏开发、媒体播放器、还是在广告和提示音效中,下面我们就来看看如何使用Java实现简单的音频播放功能吧
    2025-03-03
  • java使用apache.poi导出word文件的示例代码

    java使用apache.poi导出word文件的示例代码

    这篇文章主要介绍了java使用apache.poi导出word文件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • MyBatis-Plus动态返回实体类示例详解

    MyBatis-Plus动态返回实体类示例详解

    这篇文章主要为大家介绍了MyBatis-Plus动态返回实体类示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Java中数组的多种定义方式总结

    Java中数组的多种定义方式总结

    在 Java 编程语言中,数组是一种核心且基础的数据结构,用于存储具有相同类型的多个元素,本文将深入探讨 Java 中数组定义的多种方式,希望对大家有所帮助
    2024-11-11
  • springboot 返回json格式数据时间格式配置方式

    springboot 返回json格式数据时间格式配置方式

    这篇文章主要介绍了springboot 返回json格式数据时间格式配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java本地高性能缓存的几种常见实现方式

    Java本地高性能缓存的几种常见实现方式

    在Java中缓存是一种常用的性能优化技术,用于在应用程序中加速访问和查询数据的速度,下面这篇文章主要给大家介绍了关于Java本地高性能缓存的几种常见实现方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Java中tomcat memecached session 共享同步问题的解决办法

    Java中tomcat memecached session 共享同步问题的解决办法

    这篇文章主要介绍了Java中tomcat memecached session 共享同步问题的解决办法的相关资料,需要的朋友可以参考下
    2015-10-10
  • IDEA安装后找不到.vmoptions文件的问题及解决

    IDEA安装后找不到.vmoptions文件的问题及解决

    这篇文章主要介绍了IDEA安装后找不到.vmoptions文件的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Spring装配Bean教程之XML安装配置bean详解

    Spring装配Bean教程之XML安装配置bean详解

    大家都知道spring有多重配置方式,基于XML,基于注解,基于java类的配置,其中基于XML是最强大的一种,下面这篇文章主要给大家介绍了关于Spring装配Bean之XML安装配置bean的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • springboot项目docker分层构建的配置方式

    springboot项目docker分层构建的配置方式

    在使用dockerfile构建springboot项目时,速度较慢,用时比较长,为了加快构建docker镜像的速度,采用分层构建的方式,这篇文章主要介绍了springboot项目docker分层构建,需要的朋友可以参考下
    2024-03-03

最新评论