Map俩种遍历方式

来源:互联网 发布:oa软件开发 编辑:程序博客网 时间:2024/06/18 00:24

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         //设置entryset14         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 }

 

0 0
原创粉丝点击