keyset与entryset
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相关推荐
- keySet()和entrySet()
一.描述 keySet()和entrySet(),是Map集合中的两种取值方法. 与get(Object key)相比,get(Object key)只能返回到指定键所映射的值,不能一次全部取出.而k ...
- keySet()和entrySet()的区别
Map集合中value()方法与keySet().entrySet()区别 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet(): 将Map中所 ...
- java keyset entryset 顺序_「entryset」如何遍历Map,map的keySet()和EntrySet()区别 - seo实验室...
entryset 如何遍历Map,map的keySet()和EntrySet()区别 遍历map public static void main(String[] args) { // TODO Au ...
- Java中entryset用法,keySet()、entrySet()和Map.Entry用法
2019-11-16 package com.lixing.jihe13; import java.util.*; /** * @author: ZH * @date: 2019/10/25 10:4 ...
- Java中Map的keySet()、entrySet()详解
Map中提供了常用方法:keySet().entrySet()等,keySet()方法返回值是Map中key值的集合:entrySet()返回值这个map中各个键值对映射关系的集合,此集合的类型为Ma ...
- HashMap keySet与entrySet遍历分析
keySet(): 返回的是只存放key值的Set集合,使用迭代器方式遍历该Set集合,在迭代器中再使用get方法获取每一个键对应的值 代码案例: keySet遍历代码 /*** 通过keySet遍历 ...
- 遍历Map keySet和entrySet
public class test {public static void main(String[] args) {Map<String, String> map = new HashM ...
- map循环取值 keyset与entryset区别
转自:http://blog.csdn.net/lwzcjd/article/details/5432430 以后使用的时候 方便查询 以下的一部分内容为转载的: 1.基本概述 Set<Map. ...
- Java中Map的三种遍历方式:keySet、 entrySet、forEach
前言 最近在看<阿里巴巴Java开发手册(华山版)>,看到了关于Map的遍历方式,手册上写的很详细,我这里用代码再来展示一遍. 代码 public static void main(Str ...
- keySet和entrySet
keySet是键的集合,Set里面的类型即key的类型 entrySet是 键-值 对的集合,Set里面的类型是Map.Entry 使用entrySet则必须将map对象转换为Map.Entry,ke ...
最新文章
- 地平线机器人提出Anchor free、NMS free的3D目标检测算法 | CVPR2020 Workshop
- WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]
- innobackupex自动备份脚本
- 大战设计模式【17】—— 建造者模式
- <%=(String)request.getAttribute(““) %>的作用是什么
- IdentityServer4系列 | 快速搭建简易项目
- 深度学习(2)--深度学习中的这25个概念
- sap 设置服务器信息,服务器上配置sap
- 美赛只用matlab够,美赛思路
- Mediastream2 用法介绍及简明实例分析
- 高频谐振小信号放大器仿真分析
- 2020 dns排名_2020年新版全球/全国各地ISP的DNS服务器地址表
- 事件营销成功案例-引爆全网的优衣库事件
- WAREZ无形帝国(盗版之源) (转)
- 阿里云轻量应用服务器如何升级?
- 试着用人话说说 使命 愿景 价值观,以及人的三观
- 微信小程序 学习第一天
- 转载:微信Windows版-无效的wechatwin.dll文件errcode:126,点击“确定”下载最新版本
- 单片机控制步进电机-VB上位机生成S曲线
- 求素数(质数)的方法