Java中Map集合的遍历方式

方法一:在for-each循环中使用entries来遍历

1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
2
3 for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
4
5     System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
6
7 }  

方法二:使用Iterator遍历

 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
 2
 3 Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
 4
 5 while (entries.hasNext()) {
 6
 7     Map.Entry<Integer, Integer> entry = entries.next();
 8
 9     System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
10
11 }

该方法还设计到一种设计模式,即迭代模式。该方法可以在遍历时调用iterator.remove()来删除entries。

也可以不加入泛型:

 1 Map map = new HashMap();
 2
 3 Iterator entries = map.entrySet().iterator();
 4
 5 while (entries.hasNext()) {
 6
 7     Map.Entry entry = (Map.Entry) entries.next();
 8
 9     Integer key = (Integer)entry.getKey();
10
11     Integer value = (Integer)entry.getValue();
12
13     System.out.println("Key = " + key + ", Value = " + value);
14
15 }

方法三 通过键集合遍历值

1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
2
3 for (Integer key : map.keySet()) {
4
5     Integer value = map.get(key);
6
7     System.out.println("Key = " + key + ", Value = " + value);
8
9 }

该方法效率很低,不推荐使用

方法四 values()方法

 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
 2
 3
 4 for (Integer key : map.keySet()) {
 5
 6     System.out.println("Key = " + key);
 7
 8 }
 9
10 for (Integer value : map.values()) {
11
12     System.out.println("Value = " + value);
13
14 }
时间: 2024-11-05 14:56:25

Java中Map集合的遍历方式的相关文章

Java中List集合的遍历

 一.对List的遍历有三种方式            List<String>    list    =    new    ArrayList<String>();       list.add("testone");       list.add("testtwo");       ...            第一种:       for(Iterator<String>    it    =    list.iterat

Java中Map接口的遍历

package Test4; import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; import org.junit.Test; public class MapBianLi { /* * 如何遍历Map * Set keySet()-->遍历Key * Collection values()-->遍历va

java中map集合的迭代

import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b

c#中泛型集合directory和java中map集合对比

c#中directory的基本用法1.创建及初始化 Dictionary<int, string> myDictionary = new Dictionary<int, string>(); 2.添加元素 myDictionary.Add("C#",0); myDictionary.Add("C++",1); myDictionary.Add("C",2); myDictionary.Add("VB",

java中Map集合的理解

Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的.将hashtable替代,jdk1.2.效率高. |--TreeMap:底层是二叉树数据结构.线程不同步.可以用于给map集合中的键进行排序. 和Set很像.其实大家,Set底层就是使用了Map集合. /* map集合的两种取出方式: 1,Set<k> keySe

Java中map集合系列原理剖析

看了下JAVA里面有HashMap.Hashtable.HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和HashMap.Hashtable的区别 HashMap和Hashtable的实现原理 HashMap的简化实现MyHashMap HashMap和Hashtable的区别 两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全Hashtable的实现方法里面都添加了synchron

java中List集合及其遍历详解

1. 首先List<E>集合继承与Collection<E>,是一个接口. ①  Collection (集合框架是JDK1.2版本出现的) ②   list:是有序的,元素可以重复,以为该集合体系有索引.    经常用到的是实现该接口的ArrayList和LinkedList类 ③   Arraylist:  底层的数据结构使用的是数组结构, 特点: 查询速度很快,但是增删稍慢.线程不同步 LinkedList: 底层使用的是链表数据结构. 特点: 增删速度很快,查询稍慢. Ve

java中Set集合的遍历方法

S儿童集合的遍历: 第一种:for增强循环 Set<String> set = new HashSet<String>(); for (String str : set) {      System.out.println(str);} 第二种:迭代器遍历 Iterator<String> it = set.iterator();while (it.hasNext()) {  System.out.println(it.next);} 第三种:用的比较少(主要用于泛型的

java中map集合两种遍历方法

1.声明一个map: Map map = new HashMap(); 2.向map中放值,注意:map是key-value的形式存放的.如: map.put("sa","dd"); 3.从map中取值:String str = map.get("sa").toString();结果是:str = "dd"; 4.遍历一个map,从中取得key 和value JDK1.5 Map m = new HashMap(); for