Map俩种遍历方式

Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法

keySet

Set<K> keySet()
返回此映射中包含的键的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.removeSet.removeremoveAllretainAllclear 操作可从映射中移除相应的映射关系。它不支持 addaddAll 操作。
返回:
此映射中包含的键的 set 视图

 1 package com.Map;
 2 
 3 import java.util.HashMap;
 4 import java.util.HashSet;
 5 import java.util.Iterator;
 6 import java.util.Map;
 7 import java.util.Random;
 8 import java.util.Set;
 9 
10 public class MapKeySet {
11     public static void main(String[] args) {
12         Map<String, String> map = new HashMap<String, String>();
13         map.put("01","xsf");
14         map.put("02","mdx");
15         Set<String> keySet = map.keySet();
16         //获取迭代器
17         Iterator<String> it = keySet.iterator();
18         while(it.hasNext()){
19             String key = it.next();
20             //先取出key再通过get(key)方式获取值
21             String value = map.get(key);
22             System.out.println("key"+key+"--->value:"+value);
23     
24         }
25     }
26 }

 


entrySet

Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射关系的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过对迭代器返回的映射项执行 setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.removeSet.removeremoveAllretainAllclear 操作可从映射中移除相应的映射关系。它不支持 addaddAll 操作。
返回:
此映射中包含的映射关系的 set 视图
 1 package com.Map;
 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 MapEntrySet {
 9     public static void main(String[] args) {
10         Map<String,String> map = new HashMap<String, String>();
11         map.put("01","xsf");
12         map.put("02","mdx");
13         //设置entryset
14         Set<Map.Entry<String, String>> entryset = map.entrySet();
15         //将enterset 放入到迭代器中
16         /*Iterator<Map.Entry<String, String>> it = entryset.iterator();
17         //开始迭代
18         while(it.hasNext()){
19             //获取Map.entry关系对象
20             Map.Entry<String, String> me = it.next();
21             String key = me.getKey();
22             String value = me.getValue();
23             System.out.println("key: "+key+"-->value: "+value);
24         }*/
25         for(Map.Entry<String, String> entry: map.entrySet()){
26             String key = entry.getKey();
27             String value = entry.getValue();
28             System.out.println("key: "+key+"-->value: "+value);
29         }
30     
31     } 
32 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值