HashMap的四种遍历方式

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;/**
* @author Legend E-mail:
* @version 时间:2020年6月3日 下午6:41:01
* 类说明:
*/
public class MapIterator {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<>();//向map中放值,并验证key,value规律map.put("aa", 12);map.put("bb", 34);map.put("cc", null);map.put("ee", null);map.put(null, 56);/*** 方式一:常用,先获取key,再通过key值获得value*/for(String key: map.keySet()) {Integer value = map.get(key);System.out.println("key:"+key+"--->"+"value:"+value);}System.out.println("--------------");//map中已经存在为“bb”和“null”的key,再次put不同的value,检验结果Integer bbSecond = map.put("bb", 999);Integer nullSecond = map.put(null, 888);System.out.println("map中已经存在的key('bb'),再次put不同的value后,返回值:"+bbSecond);System.out.println("map中已经存在的key('null'),再次put不同的value后,返回值:"+nullSecond);/*** 方式二:大容量时推荐使用,效率较高*/for(Map.Entry<String, Integer> entry: map.entrySet()) {String key = entry.getKey();Integer value = entry.getValue();System.out.println("key:"+key+"--->"+"value:"+value);}System.out.println("================");/*** 方式三:通过Iterator迭代器遍历循,Map.entrySet().iterator();效率不如方式二*/Iterator<Entry<String, Integer>> it = map.entrySet().iterator();while(it.hasNext()) {Entry<String, Integer> next = it.next();System.out.println("key:"+next.getKey()+"--->"+"value:"+next.getValue());}System.out.println("+++++++++++++++++");/*** 方式四:"通过Map.values()遍历所有的value,但不能遍历key");*/for (Integer value : map.values()) {System.out.println("value:" + value);}}
}

运行结果:

key:aa--->value:12
key:bb--->value:34
key:cc--->value:null
key:ee--->value:null
key:null--->value:56
执行以下代码后
Integer bbSecond = map.put("bb", 999);
Integer nullSecond = map.put(null, 888);
System.out.println("map中已经存在的key('bb'),再次put不同的value后,返回值:"+bbSecond);
System.out.println("map中已经存在的key('null'),再次put不同的value后,返回值:"+nullSecond);
============================================
map中已经存在的key('bb'),再次put不同的value后,返回值:34
map中已经存在的key('null'),再次put不同的value后,返回值:56key:aa--->value:12
key:bb--->value:999
key:cc--->value:null
key:ee--->value:null
key:null--->value:888

总结可以得出:
a、若插入的key值map中已经存在,新value会覆盖原有的value,并将原value返回(若key不存在,返回值为null,可自行验证)。
b、value可以为null,并且可以有多个是null;
c、key值也可以为null,但只能有一个是null。

若想知其所以然,还是看源码!!!

温馨提示:
以上为本人学习记录分享内容,希望对大家有所帮助。不喜请小喷……

Java HashMap的遍历(常用的四种方式),及key,value规律相关推荐

  1. java map 迭代遍历_java 遍历Map的四种方式

    java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...

  2. java 遍历map key_java 遍历Map的四种方式

    java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...

  3. java如何遍历树_java 遍历树的四种方式

    java 遍历树的四种方式 最近做一个玫瑰图报表,数据源为TreeJson(树状json),在网上搜集下资料,和大家分享.: 先序遍历 中序遍历 后序遍历 层次遍历 public class Tree ...

  4. java arraylist 复制_Copy ArrayList的四种方式

    简介 ArrayList是我们经常会用到的集合类,有时候我们需要拷贝一个ArrayList,今天向大家介绍拷贝ArrayList常用的四种方式. 使用构造函数 ArrayList有个构造函数,可以传入 ...

  5. Java File.createNewFile 创建文件的四种方式小笔记

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java File.createNewFile 创建文件的四种方式小笔记 - joshua317的博客 1.File(Str ...

  6. Java JFrame实现全屏的四种方式

    JFrame实现全屏的四种方式,方式一: import java.awt.*; import javax.swing.*; public class FullScreenDemo1 { public  ...

  7. Java中数组转List的四种方式

    第一种方式(未必最佳):使用ArrayList.asList(strArray) 使用Arrays工具类Arrays.asList(strArray)方式,转换完成后,只能对List数组进行查改,不能 ...

  8. 【Java并发编程】并发模拟的四种方式

    文章目录 并发模拟的四种方式 一.Postman 二.Apache Bench(AB) 三.并发模拟工具JMeter 四.代码模拟 并发模拟的四种方式 一.Postman Postman是一个款htt ...

  9. Java实现回文串的四种方式

    Java实现回文串的两种方式 1.什么是回文串? "回文串"是一个正读和反读都一样的字符串,如"level"或者"noon"等就是回文串. ...

最新文章

  1. SAP IDoc Post不成功,报错 - Conventional invoice verification no longer maintained as of Release 4.6-
  2. 使用librosa计算pcen
  3. 入门Leaflet之小Demo
  4. 安装VMWare时 the system administrator has set policies to prevent this installation
  5. 深度学习目标检测相关论文资源合辑
  6. Hspice2008安装步骤
  7. springboot整合JWT使用
  8. 《SpringBoot从菜鸟到老鸟》之SpringBoot 如何配置全局的异常捕获
  9. sql 分组统计_leetcode-sql面试题十七篇精讲合集
  10. 基础算法 —— 高精度计算 —— 高精度加法
  11. 小觅双目相机如何使用_MYNT EYE S小觅双目摄像头标准(彩色)版结构光双目深度惯导相机3D...
  12. [转]分布式中Redis实现Session终结篇
  13. PHP代码重用与函数编写
  14. 【学习资料分享】光纤KVM坐席管理系统解决方案
  15. 如何删除电脑上的$RECYCLE.BIN文件夹
  16. 神经元示踪染料RH 237的功能和研究意义
  17. 毕业设计 微信小程序 音乐播放器
  18. 《大慈恩寺三藏法师传》简介
  19. Edge检查更新时出错:无法连接到Internet。如果使用防火墙,请将 MicrosoftEdgeUpdate.exe 加入允许列表中。
  20. 高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)

热门文章

  1. WireShark的过滤语法
  2. 【Solr】之倒排索引算法【字典树】2
  3. 动态图象专家组 MPEG-4
  4. C语言水洼数算法,水洼的数量算法 代码(C)
  5. 微服务容器化运维:微博容器运维平台DCP
  6. Mac启动台缺少已下载应用软件图标
  7. Ubuntu22.04分区设置
  8. 批量删除html网页,ie浏览器收藏夹网页批量删除方法
  9. 买了智能电视之后还需要购买搭配机顶盒吗?
  10. java快递管理系统