集合-----Map (3)

Map稱爲鍵值對,也叫映射。主要存儲時分爲key和value,其中key就相當於數組的下標,用來查找和定位value,key值不可重複,無序,每個key只能映射一個value。而value可以重複,map中對value不關心。
Map可以分爲Hashmap,Hashtable和TreeMap。

Hashmap默認容量爲16,允許使用 null 值和 null 鍵。HashMap 的實例有兩個參數影響其性能:初始容量 和加載因子。容量 是哈希表中桶的數量,初始容量只是哈希表在創建時的容量。加載因子 是哈希表在其容量自動增加之前可以達到多滿的一種尺度。當哈希表中的條目數超出了加載因子與當前容量的乘積時,則要對該哈希表進行 rehash 操作(即重建內部數據結構),從而哈希表將具有大約兩倍的桶數。

/**
     * The default initial capacity - MUST be a power of two.
     */
    static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默認容量 16
/**
     * The load factor used when none specified in constructor.
     */
    static final float DEFAULT_LOAD_FACTOR = 0.75f;    //默認加載因子:0.75

Hashtable中不能使用null作爲key和value。其他與Hashmap類似。

TreeMap相較於Hashmap則增加了排序,實現SortedMap接口。其存放的自定義類型要實現Comparable接口,定義比較規則。默認容量爲0

public TreeMap() {
        comparator = null;
    }

注意,不能使用迭代器直接迭代map,要先轉換爲Set類型,然後根據Set,取得key或者value或者取得entry來迭代從而遍歷Map。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章