1.Map.Entry说明

Map是java中的接口,Map.Entry是Map的一个内部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

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

2.Map.Entry使用

你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:

Set keys = map.keySet( );
if(keys != null) {
Iterator iterator = keys.iterator( );
while(iterator.hasNext( )) {
Object key = iterator.next( );
Object value = map.get(key);
;....
;}
}

然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。

幸运的是,这里有一个更加简单的途径。Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:

Set entries = map.entrySet( );
if(entries != null) {
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();
;....
}
}

尽管增加了一行代码,我们却省略了许多对Map不必要的“get”调用。同时,提供给开发人员一个同时保持了关键字和其对应的值的类。Map.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。

文章转载于:http://www.cnblogs.com/guoxu/articles/1703393.html

eg:

        Map<String,Object> map2=new HashMap<>();map2.put("111", "a");map2.put("122", "a");map2.put("333", "c");Set entries = map2.entrySet( );System.out.println("entry:"+entries);System.out.println("-----------");Set keys=map2.keySet();System.out.println(keys);if (keys!=null){for (Object s :keys) {System.out.println(s);System.out.println(map2.get(s));}}System.out.println("---------------");if (entries!=null){Iterator iterator=entries.iterator();while (iterator.hasNext()){Map.Entry entry= (Map.Entry) iterator.next();System.out.println("key:"+entry.getKey());System.out.println("value:"+entry.getValue());}}

Map.Entry使用详解相关推荐

  1. Java中Map的entrySet()详解 || Map.Entry的详解

    Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系. Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value Map.Entry的详解

  2. (7)Java数据结构--集合map,set,list详解

    MAP,SET,LIST,等JAVA中集合解析(了解) - clam_clam的专栏 - CSDN博---有颜色, http://blog.csdn.net/clam_clam/article/det ...

  3. Java Map集合的详解

    参考自:Java Map集合的详解 (略有修改) 一,Map 如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map. Map是一种依照键(key)存储 ...

  4. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

  5. java 三种将list转换为map的方法详解

    这篇文章主要介绍了java 三种将list转换为map的方法详解的相关资料,需要的朋友可以参考下 java 三种将list转换为map的方法详解 在本文中,介绍三种将list转换为map的方法: 1) ...

  6. STL 中map的用法详解

    STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...

  7. C++ map和unordered_map详解

    C++ map和unordered_map详解 官方文档链接 概述   C++中map和unordered_map提供的是一种键值对容器,在实际开发中会经常用到,它跟Python的字典很类似,所有的数 ...

  8. es6 map()和filter()详解【转】

    本文转载自: https://www.cnblogs.com/zxyun/p/7019631.html 作者:zxyun 转载请注明该声明. 原文地址:http://www.zhangxinxu.co ...

  9. C++ STL容器 —— map/multimap 用法详解

    C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...

最新文章

  1. 一个网卡设置多个IP作用
  2. 关于不同的MySQL复制解决方案概述
  3. 【总结】有三AI所有GAN相关学习资料汇总,有图文、视频、代码实战等......
  4. Leecode之翻转整数
  5. 一个WCF RESTSOAP Post例子
  6. windows平台下用CMake工具编译osg用法说明
  7. 解决前后端交互Long类型精度丢失的问题
  8. electron forge 好用吗_在优麒麟上使用 Electron 开发桌面应用
  9. 学习Haskell的一些资料
  10. 【正点原子MP157连载】 第二十一章 DMA实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  11. java 条形码打印机_java使用佳博打印机打印条形码
  12. win7计算机锁频图片怎么设置,win7锁屏背景壁纸如何修改
  13. 兜兜转转解决office和visio不能同时安装的问题
  14. 如何申请email账号注册,如何批量注册申请邮箱?
  15. ios label内字体置顶_IOS_Vertically align UILabel文本置顶 | 学步园
  16. 匠心独运: python打造GUI图形小窗口
  17. 成功三大定律 重在厚积薄发!
  18. SAP LSMW 快照批量处理总账科目数据
  19. 华硕笔记本如何锁定计算机,华硕笔记本win10怎么快捷锁屏
  20. 用Python编写斐波那契数列(Fibonacci Sequence)

热门文章

  1. 华为拍月亮申请专利;魅族黄章回应李楠离职;GoLand 2019.2 Beta 发布 | 极客头条...
  2. 六维图见过么?Python 画出来了!
  3. Web 组件即将取代前端框架?!| 技术头条
  4. 华为小米入场,能拯救乐视互联网电视挖的坑吗?
  5. 程序员遇到什么样的工作状态应该果断跳槽走人?
  6. Chrome 新 UI 很“难看”,用户很生气
  7. 流行插件 jQuery 被曝存在漏洞达三年之久!
  8. Tomcat服务器搭建及测试教程(1),腾讯技术官发布的“神仙文档”火爆网络
  9. 第 2 章 设计模式七大原则
  10. 第 12 章 执行引擎