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两种方法。 } }
By--- Gonjan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,