1、基本概述

Set<Map.Entry<K,V>> entrySet()  返回此映射中包括的映射关系的 set 视图。

Set<K>              keySet()      返回此映射中包括的键的 set 视图。

2、效率分析

对于keySet事实上是遍历了2次。一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset仅仅是遍历了第一次,他把key和value都放到了entry中。所以就快了。

3、使用举例

Map<String, String> maps = new HashMap<String, String>();  
  //方法一: 用entrySet()  
  Iterator<Entry<String,String>> it = maps.entrySet().iterator();  
  while(it.hasNext()){  
   Map.Entry<String,String> m = it.next();  
   String key = m.getKey();
   String value= m.getValue();
  }  
  // 方法二:jdk1.5支持。用entrySet()和For-Each循环()  
  for (Map.Entry<String, String> m : maps.entrySet()) {  
   String key = m.getKey();
   String value= m.getValue();   
  }  
  // 方法三:用keySet()  
  Iterator<String> it2 = maps.keySet().iterator();  
  while (it2.hasNext()){  
   String key = it2.next();
   String value= maps.get(key);
  }  
  // 方法四:jdk1.5支持,用keySet()和For-Each循环  
  for(String m: maps.keySet()){  
   String key = m;
   String value= maps.get(m);
  }

foreach和while的效率差点儿是差点儿相同的,而for则相对较慢一些。foreach能另类足够了for权?显然不是。

foreach内部原则上或实际上 Iterator,但它不能像Iterator同样可以人为地控制,并且也不能称为iterator.remove(),但是你不能使用索引,以方便存取元件。

因此foreach这个周期一般只适合于迭代。提取数据显示,不适合根据标准添加复杂的操作,例如删除和使用。

转载于:https://www.cnblogs.com/zfyouxi/p/4561986.html

keyset与entryset相关推荐

  1. keySet()和entrySet()

    一.描述 keySet()和entrySet(),是Map集合中的两种取值方法. 与get(Object key)相比,get(Object key)只能返回到指定键所映射的值,不能一次全部取出.而k ...

  2. keySet()和entrySet()的区别

    Map集合中value()方法与keySet().entrySet()区别 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet(): 将Map中所 ...

  3. java keyset entryset 顺序_「entryset」如何遍历Map,map的keySet()和EntrySet()区别 - seo实验室...

    entryset 如何遍历Map,map的keySet()和EntrySet()区别 遍历map public static void main(String[] args) { // TODO Au ...

  4. Java中entryset用法,keySet()、entrySet()和Map.Entry用法

    2019-11-16 package com.lixing.jihe13; import java.util.*; /** * @author: ZH * @date: 2019/10/25 10:4 ...

  5. Java中Map的keySet()、entrySet()详解

    Map中提供了常用方法:keySet().entrySet()等,keySet()方法返回值是Map中key值的集合:entrySet()返回值这个map中各个键值对映射关系的集合,此集合的类型为Ma ...

  6. HashMap keySet与entrySet遍历分析

    keySet(): 返回的是只存放key值的Set集合,使用迭代器方式遍历该Set集合,在迭代器中再使用get方法获取每一个键对应的值 代码案例: keySet遍历代码 /*** 通过keySet遍历 ...

  7. 遍历Map keySet和entrySet

    public class test {public static void main(String[] args) {Map<String, String> map = new HashM ...

  8. map循环取值 keyset与entryset区别

    转自:http://blog.csdn.net/lwzcjd/article/details/5432430 以后使用的时候 方便查询 以下的一部分内容为转载的: 1.基本概述 Set<Map. ...

  9. Java中Map的三种遍历方式:keySet、 entrySet、forEach

    前言 最近在看<阿里巴巴Java开发手册(华山版)>,看到了关于Map的遍历方式,手册上写的很详细,我这里用代码再来展示一遍. 代码 public static void main(Str ...

  10. keySet和entrySet

    keySet是键的集合,Set里面的类型即key的类型 entrySet是 键-值 对的集合,Set里面的类型是Map.Entry 使用entrySet则必须将map对象转换为Map.Entry,ke ...

最新文章

  1. 地平线机器人提出Anchor free、NMS free的3D目标检测算法 | CVPR2020 Workshop
  2. WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]
  3. innobackupex自动备份脚本
  4. 大战设计模式【17】—— 建造者模式
  5. <%=(String)request.getAttribute(““) %>的作用是什么
  6. IdentityServer4系列 | 快速搭建简易项目
  7. 深度学习(2)--深度学习中的这25个概念
  8. sap 设置服务器信息,服务器上配置sap
  9. 美赛只用matlab够,美赛思路
  10. Mediastream2 用法介绍及简明实例分析
  11. 高频谐振小信号放大器仿真分析
  12. 2020 dns排名_2020年新版全球/全国各地ISP的DNS服务器地址表
  13. 事件营销成功案例-引爆全网的优衣库事件
  14. WAREZ无形帝国(盗版之源) (转)
  15. 阿里云轻量应用服务器如何升级?
  16. 试着用人话说说 使命 愿景 价值观,以及人的三观
  17. 微信小程序 学习第一天
  18. 转载:微信Windows版-无效的wechatwin.dll文件errcode:126,点击“确定”下载最新版本
  19. 单片机控制步进电机-VB上位机生成S曲线
  20. 求素数(质数)的方法

热门文章

  1. springboot+freemarker毕业设计项目错误合集
  2. 集合类型与字典类型的作业
  3. 详解Java异常Throwable、Error、Exception、RuntimeException的区别
  4. 权限系统(第一次测试)
  5. bootstrap 小点
  6. 转 shell awk 使用详解
  7. ORACLE 10g创建单实例 ASM
  8. 开源网站管理工具—Altman
  9. C#遍历DataSet数据的几种方法总结
  10. WTL学习笔记(5)系统皮肤管理