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);
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章