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的两种遍历方式是什么的主要内容,如果未能解决你的问题,请参考以下文章