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. SNMP OID是什么?
  2. 如何在python中制作超级玛丽_教你利用Python写一款超级玛丽,零基础也能学会,超级装逼...
  3. html两方框重叠透明,html – 边缘浏览器向透明div添加重叠的“边缘”
  4. js 页面载入时的执行顺序
  5. SAP License:SAP中MM与财务的接口配置
  6. Java ResultSet教程
  7. CentOS下apache绑定域名
  8. C#生成JSON数据格式的函数
  9. 2021年11款最佳的开源 Kubernetes 工具
  10. 神奇宝贝服务器服务器修改器,pkhex修改器最新版
  11. Word导出PDF出现空白页
  12. vue使用talkIngData统计
  13. NLP之分词技术理论
  14. 有赞前端SP毁约后的日子
  15. 服务器没有立即响应请求,服务器没有及时响应或控制请求
  16. 未来教育计算机三级数据库演示大题,2019年计算机三级数据库考试强化试题及答案003...
  17. MD5加密为什么不可逆?
  18. 老司机 iOS 周报 #66 | 2019-05-06
  19. IOS APP 制作二维码 下载
  20. git pull 代码库时提示冲突需Merge 快速解决代码同步遇到的冲突问题 so easy的方法

热门文章

  1. 关于云计算的讨论,一年就等这一回!
  2. 从月薪 1000 到 2W+,文科生如何逆袭成为大厂程序员?
  3. 一键免费自动 AI 抠图,效果连 PS 大哥也点赞! | 程序员硬核评测
  4. 人工智能都这么火了,底层基础架构还有必要开源吗?
  5. 今日头条们的 App 内容页技术实现与优化 | CSDN技术头条
  6. 查看数值类型python_python怎么看数据类型
  7. linux 打开 protel文件格式,Protel快捷键大全
  8. el-jy-ii计算机组成原理实验报告,EL-JY-II型计算机组成原理实验系统
  9. .unl 文件 导入 mysql,informix导出的unl格式数据怎么导入sql server 2008里呢
  10. mysql8.0. linux二进制_linux下安装mysql8.0(二进制方式)