Java实现Map集合遍历的四种常见方式与用法分析

 更新时间:2018年01月02日 08:59:36   作者:别先生  
这篇文章主要介绍了Java实现Map集合遍历的四种常见方式与用法,结合实例形式较为详细的分析了java针对Map集合键值对遍历的常见使用技巧与相关操作注意事项,需要的朋友可以参考下

本文实例讲述了Java实现Map集合遍历的四种常见方式与用法。分享给大家供大家参考,具体如下:

~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值

1. 无非就是通过map.keySet()获取到值,然后根据键获取到值

for(String s:map.keySet()){
 System.out.println("key : "+s+" value : "+map.get(s));
}

2. 通过Map.Entry(String,String) 获取,然后使用entry.getKey()获取到键,通过entry.getValue()获取到值

for(Map.Entry<String, String> entry : map.entrySet()){
 System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
}

3. 其中通过Iterator也是为了最终获得entry,所以理解其用法,可以很好的使用和掌握

package com.bie;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/** 
* @author BieHongLi 
* @version 创建时间:2017年2月25日 下午8:58:54 
* 
*/
public class MapTest01 {
 public static void main(String[] args) {
  Map<String, String> map=new HashMap<String, String>();
  map.put("张三1", "男");
  map.put("张三2", "男");
  map.put("张三3", "男");
  map.put("张三4", "男");
  map.put("张三5", "男");
  //第一种遍历map的方法,通过加强for循环map.keySet(),然后通过键key获取到value值
  for(String s:map.keySet()){
   System.out.println("key : "+s+" value : "+map.get(s));
  }
  System.out.println("====================================");
  //第二种只遍历键或者值,通过加强for循环
  for(String s1:map.keySet()){//遍历map的键
   System.out.println("键key :"+s1);
  }
  for(String s2:map.values()){//遍历map的值
   System.out.println("值value :"+s2);
  }
  System.out.println("===================================="); 
  //第三种方式Map.Entry<String, String>的加强for循环遍历输出键key和值value
  for(Map.Entry<String, String> entry : map.entrySet()){
   System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
  }
  System.out.println("====================================");
  //第四种Iterator遍历获取,然后获取到Map.Entry<String, String>,再得到getKey()和getValue()
  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()+" value :"+entry.getValue());
  }
  System.out.println("====================================");
 }
}

4. Map的一些常用的知识点,和取值的变形形式,都需要掌握和了解

package com.bie;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/** 
* @author BieHongLi 
* @version 创建时间:2017年2月26日 上午11:29:59 
* 
*/
public class MapTest02 {
 public static void main(String[] args) {
  //1:key,value都是object类型的
  //2:key必须是唯一的,不唯一,那么后面的value会把前面的value覆盖
  //3:对于HashMap,key可以为空
  //4:value可以为空,也可以为空
  //5:HashTable的key和value不能为空
  //6:properties的key和value必须为String类型的
  Map<String , String> map=new HashMap<>();
  map.put("null", "this is null 1");
  map.put("null", "this is null 2");
  System.out.println(map.size());
  System.out.println(map.get(null));
  System.out.println("=============================");
  //循环显示map类型的key以及对应的value
  //三个集合,key的集合,value的集合,键值对的集合
  Set<String> keys=map.keySet();
  for(String s:keys){
   System.out.println(s);
  }
  System.out.println("=============================");
  Collection<String> values=map.values();//值的集合
  System.out.println(values);
  System.out.println("=============================");
  Set<Map.Entry<String, String>> entrys=map.entrySet();//键值对的集合
  for(Map.Entry<String, String> entry:entrys){
   System.out.println(entry.getKey()+" "+entry.getValue());
  }
 }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • SpringBoot+WebSocket实现即时通讯功能(Spring方式)

    SpringBoot+WebSocket实现即时通讯功能(Spring方式)

    今天给大家分享一个SpringBoot+WebSocket实现即时通讯功能(Spring方式),WebSocket是一种在单个TCP连接上进行全双工通信的协议,文章通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Java读取xml文件的五种方式

    Java读取xml文件的五种方式

    在编写与 XML 数据交互的现代软件应用时,有效地读取和解析 XML 文件是至关重要的,本文旨在探讨 Java 中处理 XML 文件的五种主要方法:DOM、SAX、StAX、JAXB 和 JDOM,我们将详细介绍每种方法的工作原理、典型用途以及如何在 Java 程序中实现它们
    2024-05-05
  • Spring使用@Conditional进行条件装配的实现

    Spring使用@Conditional进行条件装配的实现

    在spring中有些bean需要满足某些环境条件才创建某个bean,这个时候可以在bean定义上使用@Conditional注解来修饰,所以本文给大家介绍了Spring使用@Conditional进行条件装配的实现,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • springboot整合企微webhook机器人发送消息提醒

    springboot整合企微webhook机器人发送消息提醒

    这篇文章主要为大家介绍了springboot整合企微webhook机器人发送消息提醒,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 解决CollectionUtils.isNotEmpty()不存在的问题

    解决CollectionUtils.isNotEmpty()不存在的问题

    这篇文章主要介绍了解决CollectionUtils.isNotEmpty()不存在的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring Boot 项目中整合 MyBatis 和 PageHelper的基本步骤

    Spring Boot 项目中整合 MyBatis 和 PageHel

    这篇文章主要介绍了Spring Boot 项目中整合 MyBatis 和 PageHelper的操作步骤,整合 PageHelper 到 Spring Boot 项目中主要包括添加依赖、配置数据源与 MyBatis、配置 PageHelper 以及在业务逻辑中使用 PageHelper 进行分页查询,需要的朋友可以参考下
    2024-04-04
  • Java数据类型实现自动与强制转换的示例代码

    Java数据类型实现自动与强制转换的示例代码

    Java数据类型之间的转换有自动转换和强制类型转换,这篇文章主要给大家介绍Java数据类型如何实现自动转换与强制转换,需要的朋友可以参考下
    2023-05-05
  • SpringBoot中Mockito单元测试入门

    SpringBoot中Mockito单元测试入门

    单元测试在很多地方都用的到,本文主要介绍了SpringBoot中Mockito单元测试入门,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Java中使用patchca生成超炫的验证码

    Java中使用patchca生成超炫的验证码

    这篇文章主要介绍了Java中使用patchca生成超炫的验证码 的相关资料,需要的朋友可以参考下
    2017-06-06
  • Java面试题冲刺第二天--Redis篇

    Java面试题冲刺第二天--Redis篇

    这篇文章主要为大家分享了最有价值的三道java面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论