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

控制台打印結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM