Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法
keySet
Set<K> keySet()
- 返回此映射中包含的键的
Set
视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 -
- 返回:
- 此映射中包含的键的 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.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 -
- 返回:
- 此映射中包含的映射关系的 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 }
时间: 2024-12-26 07:18:06