HashMap遍历的四种常用方式「建议收藏」

HashMap遍历的四种常用方式「建议收藏」古人云:温故而知新。最近闲来无事就去翻阅了一下之前的一些基础java知识点。本想着随便看看,然而就发现有了意外收获。比如本文所讲HashMap遍历的四种常用方式。大伙们一起学习一起进步,记得点赞关注以示鼓励哈!!!准备工作首选我们先准备一个HashMap。publicclassTest1{publicstaticvoidmain(String[]args){Map<String,String>map=newHashMap<St

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

古人云:温故而知新。
最近闲来无事就去翻阅了一下之前的一些基础java知识点。本想着随便看看,然而就发现有了意外收获。比如本文所讲HashMap遍历的四种常用方式。
大伙们一起学习一起进步,记得点赞关注以示鼓励哈!!!

准备工作

首选我们先准备一个HashMap。

public class Test1 { 
   
    public static void main(String[] args) { 
   
        Map<String, String> map = new HashMap<String, String>();
        map.put("a", "value1");
        map.put("b", "value2");
        map.put("c", "value3");
    }
}

第一种:通过Map.keySet()遍历key和value

这个方式是我目前工作和学习中最常使用的。主要就是遍历HashMap的key然后根据key去获取value.

public class Test1 { 
   
    public static void main(String[] args) { 
   
        Map<String, String> map = new HashMap<String, String>();
        map.put("a", "value1");
        map.put("b", "value2");
        map.put("c", "value3");
        for(String s : map.keySet()){ 
   
            System.out.println("key是"+s+"____value是"+map.get(s));
        }
    }
}

结果:

key =a and value= value1
key =b and value= value2
key =c and value= value3

第二种:通过Map.values()遍历所有的value,但不能遍历key

这主要就是直接遍历HashMap的value.

public class Test1 { 
   
    public static void main(String[] args) { 
   
        Map<String, String> map = new HashMap<String, String>();
        map.put("a", "value1");
        map.put("b", "value2");
        map.put("c", "value3");
        for(String s : map.values()){ 
   
            System.out.println("value是"+s);
        }
    }
}

结果:

value是value1
value是value2
value是value3

第三种:通过Map.entrySet()遍历key和value

这个方式是我这次的新收获。entry简单理解就是一个键值对。遍历每个键值对,就能获取当前entry的key和value。

public class Test1 { 
   
    public static void main(String[] args) { 
   
        Map<String, String> map = new HashMap<String, String>();
        map.put("a", "value1");
        map.put("b", "value2");
        map.put("c", "value3");
        for (Map.Entry<String, String> entry : map.entrySet()) { 
   
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
    }
}

结果:

key =a and value= value1
key =b and value= value2
key =c and value= value3

第四种:通过Map.entrySet使用iterator遍历key和value

这个就是利用entry的迭代去遍历。跟第三种差不多。

public class Test1 { 
   
    public static void main(String[] args) { 
   
        Map<String, String> map = new HashMap<String, String>();
        map.put("a", "value1");
        map.put("b", "value2");
        map.put("c", "value3");
        Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      	while (it.hasNext()) { 
   
        	Map.Entry<String, String> entry = it.next();
        	System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
    }
}

结果:

key =a and value= value1
key =b and value= value2
key =c and value= value3

总结:

文章主要还是自己温故和记忆使用,兄弟们为了加强记忆可以收藏关注一波。当然自己找个本子或者写篇博客发表自己的意见,或许印象更加深刻!加油!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195698.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10 cuda安装_查看cudnn是否安装成功

    win10 cuda安装_查看cudnn是否安装成功官方安装教程CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.htmlcuDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindowsWIN10安装CUDA10CUDA…

    2022年5月3日
    87
  • HTML标签学习

    HTML标签学习

    2021年4月19日
    156
  • shell循环做数字递增

    shell循环做数字递增在shell用for循环做数字递增的时候发现问题,特列出shell下for循环的几种方法:1.foriin`seq11000000`;doecho$idone用seq110000000做递增,之前用这种方法的时候没遇到问题,因为之前的i根本就没用到百万(1000000),因为项目需要我这个数字远大于百万,发现用seq…

    2022年7月24日
    35
  • Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”

    Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”  信号处理中常需要分析时域统计量、频率成分,但不平稳信号的时域波形往往复杂、无序,且傅里叶变换得到的频率成分是该时间段内的平均频率,无法分析频率随时间变化的情况。随后,短时傅里叶变换(STFT)、小波变换(WT)、希尔伯特变换(HHT)等时频分析方法相继而出。  其中,STFT受时间窗口的影响、WT则需要自己选择小波、HHT在变换时需要预先将信号分解为平稳信号。由于网上只有CWT小波时频图的python代码,笔者自

    2025年6月14日
    4
  • SPI协议详解(图文并茂+超详细)

    SPI协议详解(图文并茂+超详细)先说串口因为之前写过一篇UART,通用串行异步通讯协议,UART的相关资料因为UART没有时钟信号,无法控制何时发送数据,也无法保证双发按照完全相同的速度接收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。如果要解决这个问题,UART为每个字节添加额外的起始位和停止位,以帮助接收器在数据到达时进行同步;双方还必须事先就传输速度达成共识(设置相同的波特率,例如每秒9600位)。传输速率如果有微小差异不是问题,因为接收器会在每个字节的开头重新同步。相应的协议如下图所示;如果您注意到

    2022年6月18日
    87
  • 图集谷-写真集-爬虫-1.0[通俗易懂]

    图集谷-写真集-爬虫-1.0[通俗易懂]图集谷写真集爬虫

    2022年7月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号