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 }

时间: 2024-12-26 07:18:06

Map俩种遍历方式的相关文章

Map三种遍历方式

package decorator; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.junit.Before; import org.junit.Test; /** * 对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet() *

Map两种遍历方式与TreeSet两种排序依据

集合:可以存储不同类型的多个对象,随着存储对象的个数的增加而自动扩大容量   体系结构: Collection<E>   |----List:存入的对象是有序的,且可以重复           ArrayList:底层使用的数据结构是数组,线程不安全的,查找速度快,增删速度慢           Vector:底层使用的数据结构是数组,线程安全的,查找速度快,增删速度慢           LinkedList:底层使用的数据结构是链表,线程不安全的,查找速度慢,增删速度快     |----

Map的两种遍历方式

********************************************************************************* *****************************Map两种遍历方式******************************* ********************************************************************************* 1 package ccms;

二叉树总结—建树和4种遍历方式(递归&amp;&amp;非递归)

今天总结一下二叉树,要考离散了,求不挂!二叉树最重要的就是 建立.4种遍历方式,简单应用,如何判断两颗二叉树是否相似 二叉树分为 :1.完全二叉树  2.满二叉树 结构性质: 1).满二叉树 高度为h ,节点数则为 2^h - 1,且叶子节点全在最下层,且叶子节点数为2^(n-1)个{n代表二叉树层数,也叫深度} 2).n个节点的 完全二叉树 深度为 int(log2n)(以2为底n的对数)+ 1: 3).非空二叉树 叶子节点个数==双分支节点数+1 4).非空二叉树 某节点编号 n  若有左孩

Map集合的几种遍历方式

Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1"); map.put("2","value2"); map.put("3","value3"); //第一种遍历方式: for(String key:map.keySet()){ String key=key; Str

Collection、Map、数组 遍历方式

一.for each底层实现 对于Collection,for each是隐式调用Iterator实现的,效率比显示调用Iterator略低,对于Array,for each是通过对下标引用实现的,效率比for循环要略低.for each返回的是Collection一个对象,因此不能用for each进行赋值操作. 二.Collection实现了Iterator接口,所以List.Queue.Set均可使用for each方式遍历. 三.HashMap三种遍历方式: ①map.entrySet(

set的三种遍历方式-----不能用for循环遍历(无序)

set的三种遍历方式,set遍历元素 list 遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577662 set遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577893 map遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71580051 package sun.rain.amazi

list的四种遍历方式

1.手先增强for循环和iterator遍历的效果是一样的,也就说 增强for循环的内部也就是调用iteratoer实现的,但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容.不能获取下标等. 2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环. 3.而对于 LinkedList 由于获取一个元素,要从头开始向后找,因此建议使用 增强for循环,也就是iterator. list,map,set的区别  list,map,set的区别 (首先假定小猪都是同一

JS几种遍历方式比较

几种遍历方式比较 for of 循环不仅支持数组.大多数伪数组对象,也支持字符串遍历,此外还支持 Map 和 Set 对象遍历. for in 循环可以遍历字符串.对象.数组,不能遍历 Set/Map forEach 循环不能遍历字符串.对象,可以遍历 Set/Map 原文地址:https://www.cnblogs.com/mahmud/p/10290150.html