java 遍历Map的四种方式

CreationTime--2018年7月16日16点15分

Author:Marydon

一、迭代key&value

第一种方式:迭代entrySet

1.方法一

/**
* entrySet集合for-each循环(推荐使用)
* 这种方式必须声明泛型类型:
* a.bizData使用Map接收必须得声明泛型;b.for-each()里的Entry的泛型控制可有可无
* Map的泛型控制通常使用<String,Object>
*/
Map<String, Object> bizData = dataBus.getBizData();
for (Entry<String, Object> entry : bizData.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
} 

2.方法二

/**
* entrySet集合迭代
*/
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, Object> entry = iterator.next();
System.out.println(entry.getKey() + "=" + entry.getValue());
}

  

第二种方式:迭代keySet

3.方法三

/**
* keySet集合迭代
*/
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
//获取键
String key = iterator.next().toString();//或String key = (String)iterator.next();
//根据键获取值
Object value = map.get(key);
System.out.println("键:"+ key + ",值:" + value);
}

4.方法四

/**
* keySet集合for-each循环
*/
for (String key:map.keySet()) {
System.out.println(key + "=" + map.get(key));
}

5.小结

  注意:

    遍历Map类集合KV,推荐使用entrySet而不是keySet

  原因:

    keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value;

    而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。

  说明:

    values()返回的是V值集合,是一个list集合对象;keySet()返回的是K值集合,是一个Set集合对象;entrySet()返回的是K-V值组合集合。

二、只迭代key

//只遍历键
for (String key:map.keySet()) {
System.out.println(key);
}

三、只迭代value

//只遍历值
for (Object val:map.values()) {
System.out.println(val);
}
 

java 遍历Map的四种方式的更多相关文章

  1. java遍历map的四种方式

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

  2. java遍历Map的几种方式

    1.遍历map的几种方式:private Hashtable<String, String> emails = new Hashtable<String, String>(); ...

  3. java 遍历map的四种方法

    16:21:42 Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项( ...

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

    Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1&q ...

  5. Java遍历Map的3种方式

    package test; import java.util.Collection; import java.util.HashMap; import java.util.Map; import ja ...

  6. 遍历Map的四种方式

    方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. 注意:for-each循环在java 5中被引入所以该方法只能应用于 ...

  7. Java遍历Map的4种方式

    public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashM ...

  8. [转载] Java 遍历 Map 的 5 种方式

    目录 1 通过 keySet() 或 values() 方法遍历 2 通过 keySet 的 get(key) 获取值 3 通过 entrySet 遍历 4 通过迭代器 Iterator 遍历 5 通 ...

  9. 遍历Map的四种方式(Java)

    public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...

随机推荐

  1. [Android Pro] 深入理解函数的调用过程——栈帧

    cp :http://blog.csdn.net/x_perseverance/article/details/78897637 每一个函数被调用时,都会为函数开辟一块空间,这块空间就称为栈帧. 首先 ...

  2. securecrt 多窗口执行命令

    首先在SecureCRT里同时打开多个服务器session(必须是有相同目录结构) 选择菜单栏View –>Chat Windows 对号,此时所有服务器连接下方应该有个空白的部分 在空白的部分 ...

  3. .AVLFile Extension

    .AVLFile Extension File Type 1ArcView Legend File   Developer ESRI Popularity           4.1 (7 Votes ...

  4. [转]Linux awk 命令 说明

    From : http://blog.csdn.net/tianlesoftware/article/details/6278273 一.  AWK 说明 awk是一种编程语言,用于在linux/un ...

  5. ip_conntrack参数

    ip_conntrack就是linux NAT的一个跟踪连接条目的模块,ip_conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈 ...

  6. react-router的browserHistory/react-router-dom的BrowserRouter刷新页面404问题解决

    前端解决: '/' 表示把所有的url都发给代理https://api.example.com bypass 表示不需要发给发给代理服务器的条件 如下配置,可以监听https://api.exampl ...

  7. poj 1325 Machine Schedule 题解

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14479   Accepted: 6172 ...

  8. C C++ 去除 unused的提示

    C C++ 去除 unused的提示 #define UNUSED(VAR) {VAR++;VAR--;} unsigned int user_id=0; UNUSED(user_id); 这样就可以 ...

  9. 算法生成N芒星

    前面两个图像生成算法是:道教的太极八卦图和佛教的卐和卍字图.这一节整个洋气的图像:芒星.但愿我别召唤出什么恐怖的禁忌,尤其今晚还是万圣节之夜.平时看玄幻小说,经常读到有关六芒星,七芒星,九芒星的技法. ...

  10. 阿里jstorm和storm区别

    转自:https://www.cnblogs.com/cn-leodream/p/6497277.html 看介绍文档貌似挺好:https://github.com/alibaba/jstorm   ...