#概述

本文,我们将了解一下在Java中迭代Map各种不同方法。

简单来说,我们可以使用keySet()、valueSet()或entrySet()来提取Map的内容。因为这些都是Sets,所以类似的迭代原则也适用于所有的Sets。

Map.entrySet API返回一个Map的集合,获取单个Map里面对象的唯一方法是从集合的迭代器中获取。entry.getKey()返回key, entry.getValue()返回相应的值。

让我们来看看其中的几个例子。

#使用EntrySet and for Loop

public void iterateUsingEntrySet(Map map) {

for (Map.Entry entry : map.entrySet()) {

System.out.println(entry.getKey() + ":" + entry.getValue());

}

}

首先,我们来看看如何使用 EntrySet 来迭代一个Map。

在这里,我们将Map转换为entries集合,然后用经典的for-each方法迭代它们。我们可以通过调用getKey()来访问每个entry 的Key,也可以通过调用getValue()来访问每个entry的值。

#使用Iterator and EntrySet

另一种方法是获取entries集合,用迭代器进行迭代:

public void iterateUsingIteratorAndEntry(Map map) {

Iterator> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {

Map.Entry entry = iterator.next();

System.out.println(entry.getKey() + ":" + entry.getValue());

}

}注意,我们如何使用entrySet()的iterator()API来获取迭代器实例。然后,像往常一样,我们用iterator.next()循环遍历迭代器。

#使用Lambdas

现在我们来看看如何使用lambda表达式来迭代一个Map。就像Java 8中迭代List或Sets一样,我们将使用forEach()方法。

public void iterateUsingLambda(Map map) {

map.forEach((k, v) -> System.out.println((k + ":" + v)));

}

在这种情况下,我们不需要将Map转换为entries集合。

#使用Stream API

Stream API是Java 8的主要功能之一。我们也可以使用这个特性来循环使用Map,但是和前面的例子一样,我们需要先获得entries集合:

public void iterateUsingStreamAPI(Map map) {

map.entrySet().stream().forEach(e -> System.out.println(e.getKey() + ":" + e.getValue()));

}

在本文中,我们重点介绍了一个简单但关键的操作--迭代Map。简单吧~

java map迭代_在Java中对Map进行迭代相关推荐

  1. java coin介绍_代码示例中的Java 7:Project Coin

    java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...

  2. java sortedlist 用法_为什么Java中没有SortedList?

    本文翻译自:Why is there no SortedList in Java? In Java there are the SortedSet and SortedMap interfaces. ...

  3. java避免空指针异常_避免Java中的空指针异常

    java避免空指针异常 空指针异常是Java中最常见,最烦人的异常. 在这篇文章中,我想避免这种不希望的异常. 首先让我们创建引发空指针异常的示例 private Boolean isFinished ...

  4. java字符串数组排序_在Java中对字符串数组进行排序

    允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为ArrayL ...

  5. java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用

    1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...

  6. java final 类_在Java中,final修饰的类有什么特点

    展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...

  7. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创

    由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...

  8. java jar 目录_将Java类路径中的所有jar包括在一个目录中

    有没有一种方法可以将所有的jar文件包含在类路径的目录中? 我正在尝试java -classpath lib / *.jar :. my.package.Program,它无法找到当然在这些罐子里的类 ...

  9. java gradle构建_在Gradle中为JPMS构建Java 6-8库

    java gradle构建 通过提供Java 9 module-info.class了解如何使用Gradle构建支持JPMS( Java平台模块系统 )的Java 6-8库. 介绍 如果您需要JPMS ...

最新文章

  1. Socket 简易静态服务器 WPF MVVM模式(一)
  2. 从邵东电信恶性竞争事件问责运营商高层管理者
  3. mysql 备库,【MySQL】数据库备库策略与脚本
  4. 池流程图_干货收藏 | Java程序员必备的一些流程图
  5. springboot actuator_Spring Boot之程序性能监控
  6. 星界边境服务器Linux,星界边境 保护与密码锁 服务器插件Mod
  7. mapreduce程序调用各个类的功能
  8. python踩坑记录篇,持续更新
  9. python文本数据处理_python 数据处理 对txt文件进行数据处理
  10. 防止sql拼接的Java方法_JAVA程序防止SQL注入的方法
  11. MATLAB线条颜色
  12. 斗鱼实名认证 mysql_斗鱼新人主播怎么进行实名认证 斗鱼直播实名认证失败怎么办...
  13. iPhone投屏家中设备有哪些方法 iPhone投屏失败是怎么回事如何解决
  14. TIA博途_数据的保持型与初始化的具体方法和相关问题汇总
  15. 审方干预系统功能设计方案来自周口陶粒总结
  16. Criteria使用指南
  17. jssip+webRtc+freeswitch 实现web端语音通话
  18. 浅谈联网汽车安全漏洞
  19. SM2加密解密工具类
  20. 如何利用ArcGIS绘制国界线/省界线

热门文章

  1. Java集合概述、ArrayList的使用
  2. Spring中用到的设计模式
  3. 手游方舟找不到之前的服务器,方舟如何找到以前玩的服务器 | 手游网游页游攻略大全...
  4. 用matlab处理数字高程模型(DEM)之点云数据(point cloud data)
  5. python pycharm 书籍_一份超级完整实用的 PyCharm 图解教程,8K 字赶紧收藏起来
  6. 金融信创与云化转型|保险超融合架构转型与场景探索合集
  7. unescape解密 php,[PHP]php中escape函数加密与JS中unescape解密
  8. 学理发是先去学校还是去理发店学基础知识
  9. vue 地图组件(地球模式)
  10. python11——模块与包