hashMap4种遍历方式

package collection;

import java.util.Collection;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapTest {
	public static void main(String[] args) {
		Map<String,Integer> m = new HashMap<>();
		m.put("hello", 11);
		m.put("world", 11);
		m.put("nihao", 21);
		m.put("shijie", 22);
		
		//输出map中的所有value
		Collection<Integer> values = m.values();  
		for(int value: values) {
			System.out.println(value);
		}
		 
		//map遍历1,通过keySet获得map中所有可以的集合,在通过key得到value
                //这种方式会遍历两次,一次是对key值得iterator,再一次是通过key获得值
		System.out.println("--------map遍历1------------");
		Set keySet = m.keySet();
		Iterator<String> it = keySet.iterator();
		while(it.hasNext()) {
			String key = it.next();
			System.out.print("[key=" + key + ",value=" + m.get(key) + "]  ");
		}
		
		//map遍历2,foreach方法来遍历keyset,和第一种没有什么区别
		System.out.println("--------map遍历2------------");
		for(Object key: keySet) {
			System.out.print("[key=" + key + ",value=" + m.get(key) + "]  ");
		}
		
		//map遍历3,Map内部的Entry封装所有map的key-value对放入集合中,集       //合中的一个元素就包括了key和value,这样就之遍历一次就能得到集合,并可以访问所
//有key-value。
		System.out.println("--------map遍历3------------");
		Set entrySet = m.entrySet();
		Iterator it1 = entrySet.iterator();
		while(it1.hasNext()) {
			@SuppressWarnings("unchecked")
			Map.Entry<String, Integer> e = (Map.Entry<String, Integer>)it1.next();
			System.out.print("[key=" + e.getKey() + ",value=" + e.getValue() + "]  ");
		}
		
		System.out.println();
		System.out.println("--------map遍历4------------");
		//map遍历4,java8中新增方法。
		m.forEach((key,value) -> {
			System.out.print("[key=" + key + ",value=" + value + "]  ");
		});
		
		//关于hashMap的遍历,推荐使用3,4两种方法。
		
		
		
	}
}
 

  

posted @ 2017-02-14 10:32  Gonjian  阅读(3690)  评论(0编辑  收藏  举报