一、HashMap概述; 1.HashMap是一個散列表,它存儲的是鍵值對(key-value)映射; 2.HashMap繼承AbstractMap,實現了Map,Cloneable,Serializable介面; 3.HashMap的實現不是同步的,線程不安全,但是效率高; 4.HashMap允許 ...
一、HashMap概述;
1.HashMap是一個散列表,它存儲的是鍵值對(key-value)映射;
2.HashMap繼承AbstractMap,實現了Map,Cloneable,Serializable介面;
3.HashMap的實現不是同步的,線程不安全,但是效率高;
4.HashMap允許null鍵和null值,是基於哈希表的Map介面實現;
5.哈希表的作用是用來保證鍵的唯一性;
6.HashMap的實例有兩個參數影響其性能:初試容量和載入因數,當哈希表中的條目數超出載入因數與當前容量的乘積時,要對哈希表進行rehash操作(即重建內部數據結構),容量擴大約為之前的兩倍,載入因數預設值為0.75;
二、HashMap的三種遍歷方式;
第一種:遍歷HashMap的entrySet鍵值對集合
1.通過HashMap.entrySet()得到鍵值對集合;
2.通過迭代器Iterator遍歷鍵值對集合得到key值和value值;
package com.xyfer; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class HashMapTest { public static void main(String[] args) { // 創建一個key和value均為String的Map集合 Map<String, String> map = new HashMap<String, String>(); map.put("1", "11"); map.put("2", "22"); map.put("3", "33"); // 鍵和值 String key = null; String value = null; // 獲取鍵值對的迭代器 Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); key = (String) entry.getKey(); value = (String) entry.getValue(); System.out.println("key:" + key + "---" + "value:" + value); } } }
控制台列印結果:
第二種:遍歷HashMap鍵的Set集合獲取值;
1.通過HashMap.keySet()獲得鍵的Set集合;
2.遍歷鍵的Set集合獲取值;
package com.xyfer; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class HashMapTest { public static void main(String[] args) { // 創建一個key和value均為String的Map集合 Map<String, String> map = new HashMap<String, String>(); map.put("1", "11"); map.put("2", "22"); map.put("3", "33"); // 鍵和值 String key = null; String value = null; // 獲取鍵集合的迭代器 Iterator it = map.keySet().iterator(); while (it.hasNext()) { key = (String) it.next(); value = (String) map.get(key); System.out.println("key:" + key + "---" + "value:" + value); } } }
控制台列印結果:
第三種:遍歷HashMap“值”的集合;
1.通過HashMap.values()得到“值”的集合
2.遍歷“值”的集合;
package com.xyfer; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class HashMapTest { public static void main(String[] args) { // 創建一個key和value均為String的Map集合 Map<String, String> map = new HashMap<String, String>(); map.put("1", "11"); map.put("2", "22"); map.put("3", "33"); // 值 String value = null; // 獲取值集合的迭代器 Iterator it = map.values().iterator(); while (it.hasNext()) { value = (String) it.next(); System.out.println("value:" + value); } } }
控制台列印結果: