map的两种遍历方式是什么

Posted qian-fen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map的两种遍历方式是什么相关的知识,希望对你有一定的参考价值。

学了Map后,我们都知道Map有两种遍历方式,keySet遍历个entrySet遍历,

这里简单介绍一下这两种遍历方式。

首先对于一个Map来说,右key列和value列组成,想遍历这个Map,有两种选择

第一种keyset的想法是先得到其key列,

使用Map的get(key)方法来获取其对应的值,如下图:

对应的代码是:

第二种思想是这样的,想办法得到Key和Value的映射关系,再从这个关系中得到对应的key和value值,也就是第二种遍历方式,entrySet

如图:

对应的代码是:

以上就是Map的两种遍历方式,希望对大家有帮助

这里面顺便介绍下Map.Entry的结构

Map.Entry Entry是一个Map的内部接口,等着Map的子类对象来实现它,

子类对象怎么实现呢?使用内部类的形式,这个内部类通过实现Map.Entry的接口

实现其getKey和getValue方法,完成自己的遍历方法,最后map的子类对象再通过

EntrySet方法将这个内部类对象返回,所有有了

Map的两种遍历方式

*********************************************************************************

*****************************Map两种遍历方式*******************************

*********************************************************************************

 1 package ccms;
 2 
 3 import java.util.HashMap;
 4 import java.util.Iterator;
 5 import java.util.Map;
 6 import java.util.Set;
 7 
 8 public class MapTest {
 9 
10     /**
11      * @param args
12      */
13     public static void main(String[] args) {
14         Map<String,String> map = new HashMap<String,String>();
15         map.put("1", "王者荣耀");
16         map.put("2", "刺激战场");
17         
18         /*遍历1*/
19         System.out.println("***********遍历1***********");
20         Set<String> set = map.keySet();
21         Iterator<String> it = set.iterator();
22         while(it.hasNext()){
23             String key = it.next();
24             String value = map.get(key);
25             System.out.println("value-"+value);
26         }
27         
28         /*遍历2*/
29         System.out.println("***********遍历2***********");
30         Set<Map.Entry<String, String>> s = map.entrySet();
31         Iterator<Map.Entry<String, String>> i = s.iterator();
32         while(i.hasNext()){
33             Map.Entry<String, String> entry = i.next();
34             String key = entry.getKey();
35             String value = entry.getValue();
36             System.out.println("key-"+key+"|value-"+value);
37         }
38         
39     }
40 
41 }

 

打印输出结果:

***********遍历1***********
value-刺激战场
value-王者荣耀
***********遍历2***********
key-2|value-刺激战场
key-1|value-王者荣耀

  

以上是关于map的两种遍历方式是什么的主要内容,如果未能解决你的问题,请参考以下文章

遍历Map集合的两种方式

遍历hashMap的两种方式

HashMap的两种遍历方式

Java中HashMap遍历的两种方式

遍历Map的两种方法(有排序)

HashMap遍历的两种方式,推荐使用entrySet()