Map遍历

map的遍历一般有几种吧

  • 遍历entrySet
for(Map.Entry<String,String> entry : map.entrySet()){

}

Iterator<Map.Entry<String,String>> it = map.entrySet().iterator();
while(it.hasNext()){ }
  • 遍历keySet
for(String key : map.keySet()){

}

//iterator同上
  • 遍历valueSet
for(String value : map.valueSet()){

}

//iterator同上

选择

从书写上来看,后两种要更简单些;

但是考虑下map遍历的场景:

  • 根据key值拿value

所以keySet和entrySet更经常使用吧;

for(Map.Entry<String,String> entry : map.entrySet()){
entry.getKey();
} for(String key : map.keySet()){
map.get(key);
}

但是,从性能角度讲,推荐使用entrySet

因为,keySet拿value的时候又一次遍历的map,每次取用都多一次开销,对于大容量的Map来说,性能差异也比较明显。

public V get(Object key) {
if (key == null)
return getForNullKey();
Entry<K,V> entry = getEntry(key); return null == entry ? null : entry.getValue();
}
final Entry<K,V> getEntry(Object key) {
if (size == 0) {
return null;
} int hash = (key == null) ? 0 : hash(key);
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash &&
((k = e.key) == key || (key != null && key.equals(k))))
return e;
}
return null;
}

参考文章

【技术累积】【点】【java】【28】Map遍历的更多相关文章

  1. Java中Map遍历的四种方案

    在Java中如何遍历Map对象 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> map = new HashM ...

  2. java的Map遍历

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个mappublic ...

  3. java之map遍历

    java开发中常常会用到遍历,所以下边就列举四种map的遍历方法. public class testMap { public static void main(String[] args) { Ma ...

  4. java中Map遍历的四种方式

    在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历. 方法一:在for循环 ...

  5. Java中Map常用方法总结以及遍历方式的汇总

    一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...

  6. Java Map遍历方式的选择

    [原文] 1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keyS ...

  7. java map 遍历

    转自http://rain-2372.iteye.com/blog/1615615 package com.spring.test_B11_aop1; import java.util.HashMap ...

  8. 转!! Java中如何遍历Map对象的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  9. 【转】Java中如何遍历Map对

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

随机推荐

  1. GNS3和Cisco IOU搭建路由交换实验-IOU篇

    http://www.mamicode.com/info-detail-605879.html

  2. 马悦:《Linux内核分析》MOOC课程

    http://www.cnblogs.com/20135235my/p/5237267.html

  3. fast recovery area

    First of all, the version of my enviroment is Oracle 11.0.2.3. The fast recovery area used to be cal ...

  4. 如何快速查看EPS,AI等矢量文件

    使用Adobe Bridge可以快速查看所有这些格式的资源 查看EPS格式图片: 查看AI格式:   某些AI文件则无法预览(此外还有一些CDR的格式)   相比之下,ACDSee的效果则不如Adob ...

  5. http://www.html5tricks.com/demo/jiaoben2255/index.html 排序算法jquery演示源代码

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  6. ​网页图表Highcharts实践教程之标签组与加载动画

    ​网页图表Highcharts实践教程之标签组与加载动画 Highcharts标签组 在图表的大部分元素都提供了标签功能.但非常多时候,我们须要额外说明一些信息.这个时候借助原有的图表元素的标签功能就 ...

  7. C# 文件里的类不能进行设计,因此未能为该文件显示设计器

    C# 文件里的类不能进行设计,因此未能为该文件显示设计器 vs 一直打不开设计界面  仅仅能查看代码界面  这时候须要查看  代码中  是不是 从 form    继承 假设不是 窗口类型 改为 fo ...

  8. LeetCode 387. First Unique Character in a String (字符串中的第一个唯一字符)

    题目标签:String, HashMap 题目给了我们一个 string,让我们找出 第一个 唯一的 char. 设立一个 hashmap,把 char 当作 key,char 的index 当作va ...

  9. 修改Cygwin的默认启动目录

    安装Cygwin后发现Cygwin默认的用户主目录是Windows的用户主目录(一般为:C:\Users\[UserName]\),要想修改为cygwin安装目录下的home\[UserName]\可 ...

  10. 理解和解决requireJS的报错:MODULE NAME HAS NOT BEEN LOADED YET FOR CONTEXT

    使用requireJS载入模块的时候.有时候会碰到例如以下的错误: Uncaught Error: Module name "module1" has not been loade ...