Java遍历Map的5种方法

Map作为Java中的一种集合,以键值对的形式存放一批数据,经常会被我们应用在项目中。

既然是一种集合,自然就有需要遍历的场景。今天就来说5种遍历Map的方法。

4ee71fed7a493c528d148dc2b5a7f178.png

01通过map对象的entrySet遍历Map

通过map.entrySet()方法,可以获取到一个set集合,而这个集合的每一个元素就是一个键值对。

如此就可以通过遍历通过map.entrySet()获取到的set集合来达到遍历Map的目的了。

示例代码展示一下。

cee6b5b9da78a5f3abf96daf82af0cb4.png

通过这种方式,可以同时遍历到Map的key和value。

02通过迭代器(Iterator)的方式遍历Map

遍历集合的地方就少不了会出现迭代器(Iterator)的身影。

下面来一段示例,看看怎么通过迭代器(Iterator)来遍历Map。

b127eb58b36c65f325bb0fe8cc9ffabf.png

看过我之前写的《我们来看看Java的foreach的真面目吧》这篇文章的朋友,应该知道。第一种遍历方式其实是第二种遍历方式通过语法糖做的一种编码方式,也就是第一种遍历方式在编译后实际就是第二种遍历方式了。

03通过map对象的keySet()遍历Map

通过map.keySet()方法可以获取到存放了Map的所有key的一个Set。然后通过遍历这个Set就可以做到遍历Map的效果了。

具体看下面的示例代码。

401d4b2b673c8b3a0c4a23556793c060.png

通过这种方式,可以遍历到Map的key,如果想要同时遍历到Map的value,就需要通过key来从Map这个集合中获取对应的value了。

04通过map对象的values()遍历Map

上面是通过遍历key来实现遍历Map的效果。那是不是也能遍历value来达到遍历Map的效果呢。

答案是有的,通过map.values()就可以获取到存放了Map中所有value的一个集合了。

然后就可以通过遍历这个value的集合来达到遍历Map的目的了。

具体怎么实现看下面的示例代码。

eb32a3675ea91e3a57e57a983c32f9b3.png

通过这种方式遍历Map的话,只能遍历到Map的所有value,但是无法获取Map的key。所以如果遍历时还需要获取key的话,就不适合使用这种遍历Map的方法了。

05通过Lambda表达式的方式遍历Map

从Java8开始,Java提供了对Lambda表达式的支持。通过Lambda表达式可以使代码更简洁明了(当然如果太长就另当别论了)。

其中就有可以遍历Map的方式。

那具体怎么通过Lambda表达式来遍历Map呢,请接着往下看下面的示例代码吧。

999af97b6ae039ff83e91e9a5e261b44.png

其实和第一种通过foreach的形式遍历map对象的entrySet方法获取到的set,很是相似。

大家有没有发现上面这段示例代码中,map.forEach这个语句idea给出了一个提示,那是因为这个Lambda还可以再精简。变成下面这样。

2904be228063c4db20e8c5ea3380fbee.png

可能刚接触Lambda表达式的时候,会觉得很多地方挺别扭。其实慢慢的你会发现Java8开始通过Lambda表达式来编码还是挺有意思的。

(画外音:Lambda表达式可以以后单独写写)

今天Java遍历Map的5种方法就说完了。有意见建议的朋友可以在评论区留言告诉我。

你可能感兴趣的:(java,java,后端)