集合在应用以及面试中都占有很重要的位置,今天就说说HashMap的遍历方式,偶然在一次面试中被问到的。
关于具体的实现,可以看源码。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;public class Test {public static void main(String[] args) {HashMap<String, String> hashMap = new HashMap<>();hashMap.put("1","value1");hashMap.put("2","value2");hashMap.put("3","value3");hashMap.put("4","value4");hashMap.put("5","value5");hashMap.put("6","value6");/*** 第一种遍历方式,采用for遍历key值,然后通过key去获取hashmap中的数据*/System.out.println("*********第一种遍历方式*********");for (String key:hashMap.keySet()) {System.out.println("key: " + key + " value: " + hashMap.get(key));}/*** 第二种遍历方式,采用Iterator 把hashmap中的数据放到迭代器中,然后用while循环把迭代器中的数据都读出来*/System.out.println("*********第二种遍历方式*********");Iterator iterator = hashMap.entrySet().iterator();while(iterator.hasNext()) {Map.Entry<String, String> entry=(Map.Entry<String, String>) iterator.next();System.out.println("Key: "+entry.getKey()+" Value: "+entry.getValue());}/*** 第三种遍历方式,采用for循环遍历hashmap中的数据,使用方便,但是数据量小时好用,如果数据量大的话非常消耗性能*/System.out.println("*********第三种遍历方式*********");for(Map.Entry<String, String> entry: hashMap.entrySet()) {System.out.println("Key: "+ entry.getKey()+ " Value: "+entry.getValue());}}
}
输出结果: