Map迭代器两种遍历方式

/*

map接口中没有迭代器,那么该怎么遍历?

1:Set<K> keySet() :获取到所有的键,存储到一个Set集合中,并返回该集合,因为Set有迭代器,

每次迭代出来的是一个键,再根据键来得到值

2:Set<Map.Entry<K,V>> entrySet():获取到所有的键值对儿形成的映射关系,存到一个Set集合中,再迭代这个集合

每次迭代出来的是一个映射关系,从这个映射关系中既可以得到键,也可以得到值

这种映射关系是Map.Entry<K,V>类型的

Entry是定义在Map中的一个静态成员,是一个接口

Entry为什么定义在Map里边儿?

有了集合,有了集合中的键值对儿,才会存在映射关系,所以映射关系是对集合内部的事物描述

所以定义在Map的内部

*/

import java.util.*;
class  Demo
{
	public static void main(String[] args)
	{
		HashMap<String,String>  map = new HashMap<String,String>();
		map.put("001","zhangsan");
		map.put("002","xuzhong");
		map.put("003","lisi");

         //使用 entrySet()遍历集合
		 Set<Map.Entry<String,String>> entry = map.entrySet();
		 Iterator<Map.Entry<String,String>>  ite = entry.iterator();
		 while(ite.hasNext())
		 {
		     Map.Entry<String,String> en = ite.next();
			 String key = en.getKey();
			 String value = en.getValue();
			 sop(key+"=="+value);
		 }

		//使用keySet()遍历
		/*
		Set<String> keys = map.keySet();
		Iterator<String> ite = keys.iterator();
		while(ite.hasNext())
		{
			String key = ite.next();
            String value = map.get(key);
			sop(key+"=="+value);
		}

        */

	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}
时间: 2024-12-14 07:47:34

Map迭代器两种遍历方式的相关文章

Map的两种遍历方式

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

java map的两种遍历方式

1.1.  通过key得到value //得到所有的key值 Set<String> keySet = map.keySet(); //根据key值得到value值 for (String key : keySet) { System.out.println(key+":"+map.get(key)); } 1.2.  通过entry得到key和value //得到所有的entry Set<Entry<String, String>> entrySe

细说java中Map的两种迭代方式

以前对java中迭代方式总是迷迷糊糊的,今天总算弄懂了,特意的总结了一下,基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代访问)Collection集合中的元素,Iterator也称为迭代器.它仅仅只有三个方法:hasNext(),next()和remove() hasNext():如果仍有元素可以迭代,则返回 true.(换句话说,如果 next 返回了元素而不是 抛出异常,则返回 true). next():返回迭代的下一个元素. re

List集合中两种遍历方式

遍历List集合中的元素的方法有两种: 第一种:利用迭代器遍历 代码1: // 迭代器 Iterator it=list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } 或者代码2: for(Iterator it=list.iterator();it.hasNext();) { System.out.println(it.next()); }// 与while循环相比优点:对象it在循环结束后,变为垃圾,自动

Map集合的两种遍历方式

Map集合:即 接口Map<K,V> map集合的两种取出方式:    1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中), 因为Set具备迭代器,可以进行迭代遍历. 所有可以迭代方式取出所有的链,再根据get方法.获取每一个键对应的值. Map 集合的取出原理: 将map集合转成set集合. 再通过迭代器取出    2. set<Map.Entry<k,v>>  entrySet: 将map集合中的映射

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

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

Java之List和Map的几种遍历方式

/** * list和map遍历 */ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class list_map遍历{ public static void main(String[] args) { List<String> list=new ArrayList<St

HashMap的两种遍历方式

HashMap存储的是键值对:key-value . java将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了HashMap的遍历处理. 第一种:(只遍历一次,将key及value都放到entry中,效率高) Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { java.util.Map.Entry entry

Map的三种遍历方式

对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定的 package com.fync.jsj.mapTemplate; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import ja