Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java遍历Map对象的四种方式

Java遍历Map对象的四种方式

原创
作者头像
诺浅
修改于 2020-08-21 09:46:52
修改于 2020-08-21 09:46:52
6570
举报
文章被收录于专栏:工具使用工具使用

方法一

这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。

代码语言:txt
AI代码解释
复制
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
  System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
}

方法二

如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

代码语言:txt
AI代码解释
复制
Map<Integer, Integer> map = new HashMap<Integer, Integer>(); 
//遍历map中的键
for (Integer key : map.keySet()) {
  System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
  System.out.println("Value = " + value);
}

方法三

使用Iterator遍历,你也可以在keySet和values上应用同样的方法。

该种方式看起来冗余却有其优点所在。

  • 在老版本java中这是惟一遍历map的方式
  • 你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能。
  • 性能较快该方法类同于for-each遍历(即方法二)的性能。
代码语言:txt
AI代码解释
复制
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
  Map.Entry<Integer, Integer> entry = entries.next();
  System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
}

方法四(效率低)

通过键找值遍历,这个代码看上去更加干净;但实际上它相当慢且无效率。因为从键取值是耗时的操作(与方法一相比,在不同的Map实现中该方法慢了20%~200%)。如果你安装了FindBugs,它会做出检查并警告你关于哪些是低效率的遍历。所以尽量避免使用。

代码语言:txt
AI代码解释
复制
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer key : map.keySet()) {
  Integer value = map.get(key);
  System.out.println("Key = " + key + ", Value = " + value);

总结

如果仅需要键(keys)或值(values)使用方法二。如果你使用的语言版本低于java 5,或是打算在遍历时删除entries,必须使用方法三。否则使用方法一(键值都要)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java遍历Map对象的四种方式
关于java中遍历map具体哪四种方式,请看下文详解吧。 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value =
似水的流年
2018/03/28
1.7K0
java 遍历map集合_Java遍历Map对象的四种方式
方式一 :这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
全栈程序员站长
2022/07/23
1.8K0
Java遍历Map对象的四种方式
如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。
似水的流年
2019/12/12
6660
Java中如何遍历Map对象的4种方法
既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等)
全栈程序员站长
2022/08/02
1.4K0
Java中如何遍历Map对象的4种方法
既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等)
bear_fish
2018/09/19
2.2K0
java Map遍历的5种方法和一些基本使用
方法一: 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
全栈程序员站长
2022/11/08
3880
遍历hashmap的三种方式_java map 遍历删除
在Java中有多种遍历HashMap的方法,注意Java中所有的Map类型都实现了共有的Map接口,所以接下来方法适用于所有Map(如:HaspMap,TreeMap,LinkedMap,HashTable,etc)
全栈程序员站长
2022/09/30
7160
java hashmap 遍历删除元素_java 中 HashMap 遍历与删除[通俗易懂]
/*** 在键值都需要时使用*/Map map = new HashMap();for (Map.Entryentry : map.entrySet()) {
全栈程序员站长
2022/10/02
2.5K0
Java遍历map集合的4中方式
方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时
全栈程序员站长
2022/07/23
4920
HashMap遍历
在Java中有多种遍历HashMap的方法。让我们回顾一下最常见的方法和它们各自的优缺点。由于所有的Map都实现了Map接口,所以接下来方法适用于所有Map(如:HaspMap,TreeMap,LinkedMap,HashTable,etc)
九州暮云
2019/08/21
5920
Java面试:2021.05.06
注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。
夕梦
2021/05/08
4710
Java面试:2021.05.06
Java中遍历HashMap的5种方式
如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历。
明明如月学长
2021/08/27
1.5K0
map集合遍历的三种方式(map遍历的两种方式)
Map 集合的遍历与 List 和 Set 集合不同。Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map 以及实现 Map 的接口类(如 HashMap、TreeMap、LinkedHashMap、Hashtable 等)都可以用以下几种方式遍历。
全栈程序员站长
2022/08/01
5630
Java中遍历Map集合的五种方式[通俗易懂]
从源码可以看到,这种新特性就是在传统的迭代方式上加了一层壳,但是让代码变得更加简单。(开发中推荐使用)
全栈程序员站长
2022/07/25
3550
Java 中九种 Map 的遍历方式,你一般用的是哪种呢?
日常工作中 Map 绝对是我们 Java 程序员高频使用的一种数据结构,那 Map 都有哪些遍历方式呢?这篇文章阿粉就带大家看一下,看看你经常使用的是哪一种。
Java极客技术
2022/12/04
7280
Java 中九种 Map 的遍历方式,你一般用的是哪种呢?
1.6 Java遍历Map集合[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说1.6 Java遍历Map集合[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/04/21
7010
java map遍历的几种方式_二叉树的三种遍历方式
在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。
全栈程序员站长
2022/11/08
3710
Java中四种遍历Map的方式
Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry)
木野归郎
2022/02/25
5210
Map集合的四种遍历方式
Map集合的四种遍历方式 很久以前写的代码,和上一个做比较吧!便于以后查看 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestMap { 6 public static void main(String[] args) { 7 Map map = new HashMap(); 8 map.put(1
allsmallpig
2021/02/25
3010
Map集合遍历的四种方式理解和简单使用
本文介绍了Map集合的遍历方式,包括强类型迭代器遍历、增强型for循环遍历、Iterator遍历、Map.Entry遍历,以及常见知识点和取值的变形方式。
别先生
2017/12/29
9140
相关推荐
Java遍历Map对象的四种方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文