Java遍历Map集合的四种方式

Map 集合的遍历与 List 和 Set 集合不同。Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map 以及实现 Map 的接口类(如 HashMap、TreeMap、LinkedHashMap、Hashtable 等)都可以用以下几种方式遍历。

1)在 for 循环中使用 entries 实现 Map 的遍历(最常见和最常用的)。

 import java.util.HashMap;
import java.util.Map;public class Test {public static void main(String[] args) {Map<String,String> map=new HashMap<String,String>();map.put("父亲", "奥特曼之父");map.put("母亲", "奥特曼之母");map.put("儿子", "奥特曼之子");//entrySet():返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据类型为 Map.Entryfor(Map.Entry<String, String> entry:map.entrySet()){String mapKey=entry.getKey();String mapValue=entry.getValue();System.out.println(mapKey+","+mapValue);}}
}

运行结果:

父亲,奥特曼之父
母亲,奥特曼之母
儿子,奥特曼之子

2)使用 for-each 循环遍历 key 或者 values,一般适用于只需要 Map 中的 key 或者 value 时使用。性能上比 entrySet 较好。

import java.util.HashMap;
import java.util.Map;public class Test {public static void main(String[] args) {Map<String,String> map=new HashMap<String,String>();map.put("队长", "心脏病");map.put("队员一", "冠心病");map.put("队员二", "失心病");//打印键集合for(String key:map.keySet()){System.out.println(key);}//打印值集合for(String value:map.values()){System.out.println(value);}}
}

运行结果:

队长
队员一
队员二
心脏病
冠心病
失心病

3)使用迭代器(Iterator)遍历
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

public class Test {public static void main(String[] args) {Map<String,String> map=new HashMap<String,String>();map.put("队长", "心脏病");map.put("队员一", "冠心病");map.put("队员二", "失心病");Iterator<Entry<String,String>> entries=map.entrySet().iterator();while(entries.hasNext()){Entry<String,String> entry=entries.next();String key=entry.getKey();String value=entry.getValue();System.out.println(key+","+value);}}
}

运行结果:

队长,心脏病
队员一,冠心病
队员二,失心病

4)通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;public class Test {public static void main(String[] args) {Map<String,String> map=new HashMap<String,String>();map.put("队长", "心脏病");map.put("队员一", "冠心病");map.put("队员二", "失心病");for(String key:map.keySet()){String value=map.get(key);System.out.println(key+":"+value);}}
}
队长:心脏病
队员一:冠心病
队员二:失心病

1.6 Java遍历Map集合相关推荐

  1. Java遍历Map集合,获取key、value等方式

    首先构建一个Map集合: Map<String, Integer> buy=new HashMap<>();buy.put("苹果手机", 2);//添加键 ...

  2. Java遍历Map集合的第二种方法Entry对象遍历Map集合内元素

    键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值. 操作步骤: 获取Map集合中,所有的键值对(Entry)对象,以Set集合形式返回.方法提示:entry ...

  3. java遍历map集合传值,不同方式遍历Map集合(全)

    今天一朋友问我有关map集合的遍历问题,说真的当时真是懵了似懂非懂的,下面我通过查阅资料,具体内容整理如下: public static void main(string[] args){ map m ...

  4. 【020期】面试官问:Java 遍历 Map 集合有几种方式?效率如何?

    >>号外:关注"Java精选"公众号,回复"2021面试题",领取免费资料!"Java精选面试题"小程序,3000+ 道面试题在 ...

  5. java 遍历map集合

    Map<String, String> map = new HashMap<String, String>();   map.put("key1", &qu ...

  6. Java 遍历Map集合的方法

    方法一:通过Map.keySet,遍历key和value Map<String, Object> map = new HashMap<>(); for (String key ...

  7. [Java基础]Map集合的遍历

    Map集合是Java中非常常用的一个集合,通过Map集合可以实现对数据的快速检索和插入删除等操作:同样对Map集合的遍历也是十分重要的:如果你之前学过C++,那么对于Map的遍历操作可就不能像是C++ ...

  8. Java之五种遍历Map集合的方式

    摘要:在java中所有的map都实现了Map接口,因此所有的Map都可以用以下的方式去遍历. 在java中所有的map都实现了Map接口,因此所有的Map都可以用以下的方式去遍历.这篇文章主要给大家介 ...

  9. Java中遍历Map集合的5种方式总结

    这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 方式一 通过Map.keySet使用iterator遍历 ...

最新文章

  1. Java 中 StringBuilder 在高性能用法总结
  2. 阿里面试题Linux curl命令详解
  3. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
  4. 100层楼2个鸡蛋,如何得知鸡蛋能承受几层的撞击
  5. Kafka2.5->Flink1.12->Mysql8(Jark实验改为DDL形式)
  6. datatables分页下一页不能点击_干货,删不掉Word文末最后一页?学会5个方法,再也不愁啦...
  7. 读书笔记——Accelerated C++ Chapter 12 使类对象获得数值功能
  8. 国二c语言考试分值,计算机二级C语言题型和评分标准
  9. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十八章 UCOSII 实验 3...
  10. 懒人查看python源码方法
  11. API文档与模拟数据接口
  12. 64位Ubuntu14.04系统无法解压bin文件的解决方法
  13. 论文查重报告橙色和红色是什么意思?
  14. PyTorch以及VGG模型
  15. kubernetes in action读书笔记(四)ConfigMap、Secret、滚动升级、downwardAPI、Deployment、Statefulset
  16. java Swing+mysql+JDBC实现教务系统(源码+数据库+UML图+数据库分析)
  17. BasicVSR_pp video2frame
  18. Q50:TCP如何保证可靠性?
  19. 编码器verilog实现
  20. mac 打开网页慢_在Mac电脑开启Safari速度总是很慢?可以试试这10种解决方法

热门文章

  1. python中object是什么类型_python中类与对象之继承
  2. 浅谈网络安全就业前景
  3. 【龙虎豹】这绝对是一种观点:关于H5游戏的几个错觉!
  4. PPT-显示Chinese Translation Addin 中的自定义UI运行时错误,怎么办
  5. Java的GC什么时候回收垃圾
  6. 电脑自动弹出命令窗口问题处理(定时任务)
  7. SECS/GEM金南瓜通讯平台
  8. 尚硅谷2020微服务分布式电商项目《谷粒商城》学习笔记
  9. down mark 打钩_如何在markdown中打出上标、下标和一些特殊符号
  10. U盘超级加密3000试用版与正式版的区别有哪些?