Java中遍历Map的几种方法
方法分为两类:
一类是基于map的Entry;map.entrySet();
一类是基于map的key;map.keySet()
而每一类都有两种遍历方式:
a.利用迭代器 iterator;
b.利用for-each循环;
代码举例如下
package cn.wzb; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry; //循环遍历map的方法
public class TestMap {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3); // JDK1.4中
// 遍历方法一 hashMap.entrySet() 遍历
System.out.println("方法一");
Iterator<Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("key = " + key + "; value = " + value);
} System.out.println(""); // JDK1.5中,应用新特性For-Each循环 // 遍历方法二
System.out.println("方法二");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue().toString();
System.out.println("key =" + key + " value = " + value);
}
System.out.println(""); // 遍历方法三 hashMap.keySet().iterator() 遍历
System.out.println("方法三");
for (Iterator<String> i = map.keySet().iterator(); i.hasNext(); ) {
String key = i.next();
System.out.println(" key = " + key + "; value = " + map.get(key));
} /*
for (Iterator<Integer> i = map.values().iterator(); i.hasNext(); ) {
Integer value = i.next();
System.out.println(value));// 循环输出value
}
*/
/*
for(Integer value : map.values() ) {
System.out.println("value = " + value);
}
*/ System.out.println("");
// 遍历方法四 Hashmap.keySet()遍历
System.out.println("方法四");
for (String key : map.keySet()) {
System.out.println("key = " + key + "; value = " + map.get(key));
}
System.out.println(); // java如何遍历Map <String, ArrayList> map = new HashMap <String, ArrayList<Integer> >();
System.out.println("java 遍历Map <String, ArrayList<Integer> map = new HashMap <String, ArrayList<Integer>>();");
System.out.println("方法一:");
Map<String, List<Integer> > mapList = new HashMap <String, List<Integer> >();
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
mapList.put("aaa", list);
mapList.put("bbb", list); Set<String> keys = mapList.keySet();
Iterator<String> iterator = keys.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key + " : "); List<Integer> arrayList = mapList.get(key);
for (Integer i : arrayList) {
System.out.print(i + ", ");
}
System.out.println();
} System.out.println("方法二:"); for (Map.Entry<String, List<Integer> > entry : mapList.entrySet()) {
String key = entry.getKey();
System.out.println(key + " : "); List<Integer> values = (List<Integer>) entry.getValue();
for (Integer value : values) {
System.out.print(value + ", ");
}
System.out.println();
}
}
}
Java中遍历Map的几种方法的更多相关文章
- Java中遍历map的四种方法 - 转载
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- 谈谈java中遍历Map的几种方法
java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...
- java 中遍历Map的几种方法
方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基于map的key:map.keySet() 而每一类都有两种遍历方式: a.利用迭代器 iterator: b.利 ...
- java中遍历map的几种方法介绍
喜欢用Java写程序的朋友都知道,我们常用的一种数据结构map中存储的是键值对,我们一般存储的方式是: map.put(key, value); 而提取相应键的值用的方法是: map.ge ...
- java中遍历map对象的多种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有ma ...
- Java原来如此-遍历Map的三种方法
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pub ...
- Java中遍历Map的四种方式
Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1&q ...
- java中遍历map的两种方式
1.先将map对象转成set,然后再转为迭代器 Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ En ...
- java中遍历MAP,嵌套map的几种方法
java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>(); map.put("us ...
随机推荐
- c++ 控制台流和字符串流
前言 上一章节简单介绍c++中关于流的概念,这两章节将重点讲解如何使用,本章讲解控制台流和字符串流. 控制台输出流 输出流定义在头文件中,使用输出流最简单的方法就是 使用<<运算符.通过你 ...
- 弹出窗口zDialog的使用
因为没有元素可以显示到Frameset上面去,所以重新定义了,一个index.htm,对其的操作是: Index.htm <script language="javascript ...
- 浅谈UML中类之间的五种关系及其在代码中的表现形式
本文转载:http://www.cnblogs.com/DebugLZQ/archive/2013/05/13/3066715.html 什么是类? 将某类东西归纳在一起,可以成为一个类. 类有很多种 ...
- IE8下提示'console'没有定义错误
在开发的过程中因为调试的原因,在代码中增加console.info("xxxx"),而未进行删除 在IE8下測试该代码所在的页面报错,例如以下: 须要注意的是,使用console对 ...
- 怎样安装两个tomcat,怎样配置
装两个tomcat 各自是6.0和7.0 可想执行tomcat6.0 可是实际上却执行tomcat7.0 两个版本号都是用解压缩包 事实上就是不能执行tomcat6.0 仅仅能执行7.0 两个环境变量 ...
- change buffer
https://yq.aliyun.com/articles/222 change buffer: insert buffer delete buffer purge buffer 1.innodb_ ...
- linux 内核分析+使用SystemTap调试新增内核模块
http://blog.chinaunix.net/uid/14528823/list/1.html?cid=189394
- 第二篇:从 GPU 的角度理解并行计算
前言 本文从使用 GPU 编程技术的角度来了解计算中并行实现的方法思路. 并行计算中需要考虑的三个重要问题 1. 同步问题 在操作系统原理的相关课程中我们学习过进程间的死锁问题,以及由于资源共享带来的 ...
- react native mac install
Mac上使用react native tips: 1. 安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/ ...
- 原生JS添加节点方法与jQuery添加节点方法的比较及总结
一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div1</div> <div id="d ...