map的四种遍历方式
map是Java中非常常用的一种数据结构,但map不同于set和list都继承自Collection接口。
所以map没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素。
构造一个map
- Map<String, String> map = new HashMap<String, String>();
- map.put("001", "hello");
- map.put("002", "world");
- map.put("003", "main");
想遍历这个map,那map通常的遍历方式有哪几种呢?
这里我们介绍常用的四种方式:keySet集合迭代,entrySet集合迭代,keySet 集合for-each 循环,entrySet集合for-each循环。
方法1 keySet集合迭代
- // method1
- Set<String> keySet = map.keySet();
- Iterator<String> it = keySet.iterator();
- while (it.hasNext()) {
- String key = it.next();
- System.out.println(key + "=" + map.get(key));
- }
方法2 entrySet集合迭代
- // method2
- Set<Map.Entry<String, String>> entrySet = map.entrySet();
- Iterator<Map.Entry<String, String>> meIt = entrySet.iterator();
- while (meIt.hasNext()) {
- Entry<String, String> entry = meIt.next();
- System.out.println(entry.getKey() + "=" + entry.getValue());
- }
方法3 keySet集合for-each循环
- // method3
- for (String key : map.keySet()) {
- System.out.println(key + "=" + map.get(key));
- }
方法4 entrySet集合for-each循环
- // method4
- for (Map.Entry<String, String> entry : map.entrySet()) {
- System.out.println(entry.getKey() + "=" + entry.getValue());
- }
四种方式中,method1 和 method2 是通过迭代器来显示完成的,method3 和 method4 是通过for-each来隐式的通过迭代器来完成的。
同时 method1 和 method3 是通过key的集合来完成的,method2 和 method4 是通过entry 的集合来完成的。
方法1 和方法2 的区别
一个是获取keySet ,一个是获取entrySet
推荐使用entrySet 的方式去获取,查看map通过key获取value的方法
- public V get(Object key) {
- if (key == null)
- return getForNullKey();
- Entry<K,V> entry = getEntry(key);
- return null == entry ? null : entry.getValue();
- }
也是先获取该key对应的entry,然后再获取value值,所以,推荐使用entrySet 方法,再遍历entry集合的方式来遍历map
map 接口还有一个方法 values() ,由于仅能取到所有的value值,而取不到key值,所以在这里就算不上遍历map了,只能算上遍历map的value值。
map的四种遍历方式的更多相关文章
- Map 的四种遍历方式
Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...
- java Map的四种遍历方式
1.这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用. Map<Integer, Integer> map = new HashMap<Integer, Int ...
- list的四种遍历方式
1.手先增强for循环和iterator遍历的效果是一样的,也就说 增强for循环的内部也就是调用iteratoer实现的,但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容.不能获 ...
- Java中Map的4种遍历方式
第一种方式:这是平常用的最多也最可取的一种遍历方式. for (Map.Entry<String, Object> entry : map.entrySet()) { System.out ...
- lua中for循环的四种遍历方式
lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3 key,value pairs 取每一 ...
- Map的四种遍历
//Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...
- java集合四种遍历方式
package conection; import java.util.Iterator;import java.util.LinkedList;import java.util.List; publ ...
- java map的四种遍历
四种遍历: public static void main(String[] args) { Map<String, String> map = new HashMap<String ...
- Map的两种遍历方式
********************************************************************************* ****************** ...
随机推荐
- -/bin/sh: ./led: not found的解决办法
环境介绍: 开发板:qq2440 交叉编译器:arm-linux-gcc 3.4.1 内核版本:2.6.13 一.针对该类问题从两个方面入手: 1.从权限出发,权限不够会出现此问题 2.从库文件出发, ...
- Qt qmake 使用(含遗留问题)
网上在介绍编译Qt的教程中,大多数都是这样提到编译的: 1, 运行 VS2012 x86 Native Tools Command Prompt 批处理 2, cd <install qt5.0 ...
- web开发字符乱码问题
java动态网页后台乱码问题总结 乱码可能出现的几块地方: 首先是浏览器和html之间采用的编码不一致 解决办法: 修改浏览器的编码格式 修改html页面的编码格式: <meta http-eq ...
- bootstrap-table填坑之旅<二>事件
接着研究bootstrap-table... ... 这一篇研究bootstrap-table的事件及回调函数 先上一个demo HTML <div class="alert aler ...
- 使用Spring Tool Suite创建Maven Web工程
使用STS或者Eclipse这样的IDE创建Maven Web工程还真不是一般的麻烦! 看了网上不少的方法介绍,操作下来总有区别,不是这里不对就是那里不对. 下面是尝试了几次之后成功的方法,记录一下. ...
- adb push命令的使用
最近刚接触一种工具(命令),什么命令呢?就是adb命令,对这个命令纯属一个小白鼠,什么都不懂,所以只能adb --help 一下参数,然后就尝试着使用. 今天遇到一个问题,需要将某个文件拷到小机上面, ...
- Tableau(数据抽取)
如果启用的是标准的企业数据库,TABLEAU中做实时分析会比较困难,例如以下情况:(1)不在办公室,无法连接到数据库:(2)在Microsoft SQL Server或者Oracle,在数据库很大或者 ...
- 原生Android App项目调用Untiy导出的Android项目
背景:采用Google VR SDK for Unity 开发3D场景功能,然后导出Android项目,合并到一个Android App里面,供其它Activity调用. 用Google VR for ...
- js 在页面上模拟多选,蚂蚁线线框
<html> <head></head> <style> body{padding-top:50px;padding-left:100px;paddin ...
- parseInt方法——将字符串解析为int值
parseXxx()方法 语法:static int parseInt(String s) 返回字符串的十进制整数形式 static int parseInt(String s, int rad ...