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种方法就说完了。有意见建议的朋友可以在评论区留言告诉我。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值