Java基础之Map的clear和new的区别

Java基础之Map的clear和new的区别

void clear();

从此映射中删除所有映射。 此调用返回后,Map将为空。

new HashMap<>();

使用默认初始容量(16)和默认加载因子(0.75)构造一个空的HashMap。

Map的clear和new的区别

// 将Map放入List看一下效果,下面是代码演示

方案一:

public static void main(String[] args) {

Map map1 = new HashMap<>(5);

List> list1 = new ArrayList<>();

for (int i = 0; i < 5; i++) {

map1.clear();

map1.put(i, i * 2);

list1.add(map1);

}

System.out.println(list1);

}

运行结果

方案二:

public static void main(String[] args) {

Map map2 = null;

List> list2 = new ArrayList<>(5);

for (int i = 0; i < 5; i++) {

map2 = new HashMap<>();

map2.put(i, i * 2);

list2.add(map2);

}

System.out.println(list2);

}

运行结果

clear和new的区别

方案一:我们只是把map.clear了(查看clear的源码,clear的作用是把map里每个属性设置为null,并把map的长度设置为0)。并没有销毁,map的指针还是存储在list里面了,所以后面新add到list里面的东西都是同一个map,都是指向同一个map,list里面存储的是map的指针;

方案二:每次创建新的map,每次都是不同的引用;

Java基础之Map的clear和new的区别相关教程

java clear new_Java基础之Map的clear和new的区别相关推荐

  1. JAVA程序设计----集合基础之Map

    Map接口不是继承Collection接口,它与Collection接口是并列存在的,用于储存键-值对(key-value)形式的元素,描述了有不重复的键到值的映射. Map中的key(键)和valu ...

  2. JAVA集合Connection接口和Map接口常用的类及区别

    JAVA集合详解 文章目录 JAVA集合详解 前言 一.集合是什么? 1. 集合类 2.集合和数组的区别: 二.使用步骤 一.Connection接口(单列集合) 1.List和Set的优缺点 2.总 ...

  3. JAVA:【基础三】split忽略中英文的符号区别

    需求: 在解析工作中,由于输入人员的不注意,常常会有中文逗号",",以及英文逗号","的同时存在. 作为码农,我们可以使用正则表达式来兼容中英文的符号. 一.示 ...

  4. Map的clear踩坑

    自己太蠢代码如下: List<Map<String, Object>> listMap = new ArrayList<Map<String, Object> ...

  5. Java基础之Map集合

    Map集合: 1.Map集合与Collection集合的区别: 1.Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储. 2.Map中的集合1,元素是成对存在的, ...

  6. Java集合Set,List和Map等

    Java集合Set,List和Map等 1 Java集合框架 因为Java是面向对象的语言,对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.另一方面,使用Array存储对象 ...

  7. Java NIO编程基础

    Java NIO编程基础 Java NIO 基本介绍 NIO的Buffer基本使用 NIO 和 BIO 的比较 NIO 三大核心原理示意图 缓冲区(Buffer) 基本介绍 Buffer 类及其子类 ...

  8. java开发必备基础

    Java总复习 java知识总复习 第一章:java概述: 1:Java的历史: ​ Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文 ...

  9. Java并发编程的艺术-Java并发编程基础

    第4章 Java并发编程基础 ​ Java从诞生开始就明智地选择了内置对多线程的支持,这使得Java语言相比同一时期的其他语言具有明显的优势.线程作为操作系统调度的最小单元,多个线程能够同时执行,这将 ...

  10. Java EE开发基础

    Java EE开发基础 软件架构 单机软件:需要安装,不需要联网 B/S架构:Browser/Server(浏览器/服务器),需要网络通信,不需要安装 C/S架构:Client/Server(客户端/ ...

最新文章

  1. Spring IoC 学习(3)
  2. Jenkins 设置镜像_Windows Docker Agent 镜像可以常规使用了
  3. QT的QDomElement类的使用
  4. linux7 无法连接网络,CentOS7无法连接网络怎么办
  5. 3D环动画css3实现,CSS3 3D酷炫立方体变换动画的实现
  6. Java基础(三)选择和循环结构
  7. C++——《算法分析》实验贰——最长公共子序列问题
  8. JavaScript文档对象模型概述(1)
  9. MediaWiki中的各种功能和设置
  10. windos 启动redis服务端与客户端
  11. uniapp、uniCloud实现微信公众号自动查询淘宝京东优惠券制作过程
  12. 毕业工作五年的总结和感悟(上)
  13. SAP 第四代增强-BTE
  14. 【vue大师晋级之路第一集:Vue基础】第8章——事件处理
  15. 江苏援沪“大白”们,用手绘漫画为上海加油
  16. linux命令之 whatis
  17. 什么是 go vendor
  18. Linux:打包压缩
  19. servlet cannot be resolved to a type的原因及解决方法
  20. Latex中定理、引理、证明、假设

热门文章

  1. 毕设题目:Matlab答题卡识别
  2. 【图像加密】基于matlab GUI混沌系统灰色图像加密解密(带面板)【含Matlab源码 1240期】
  3. 【游戏】基于matlab GUI时钟设计【含Matlab源码 1102期】
  4. 【数字信号】基于matlab GUI虚拟信号发生器(各种波形)【含Matlab源码 271期】
  5. 图像数据增强扩充数据库_分析数据扩充以进行图像分类
  6. 人工智能和机器学习的前五门课程
  7. ai人工智能数据处理分析_建立数据平台以实现分析和AI驱动的创新
  8. nosql第一章课后习题
  9. c#二叉树 取叶子节点个数_「leetcode」222.完全二叉树的节点个数
  10. mysql 存储过程 out list_MySQL存储过程中的IN,OUT,INOUT类型 用法