1. 程式人生 > >HashMap淺入理解

HashMap淺入理解

map map接口 理解 效率 指針 能夠 異常 ont 否則

HashMap不能保證元素的順序,HashMap能夠將鍵設為null,也可以將值設為null,與之對應的是Hashtable,(註意大小寫:不是HashTable),Hashtable不能將鍵和值設為null,否則運行時會報空指針異常錯誤; HashMap線程不安全,Hashtable線程安全 Hash家族必須一次性兩個值存儲,就是所謂的鍵值對. 但是呢,Hash家族內部分為了幾個小家族,分別是HashMap,Hashtable,TreeMap. 這幾個家族呢,對鍵值對能不能存儲null這種不是很安全的"買賣"有不一樣的行動. 其中的HashMap家族與Hashtable、TreeMap不同,認為沒有風險就沒有利潤!於是乎,準許自己的鍵值對都可以為null!
Hashtable與TreeMap一看SUN國王居然默許了HashMap的冒險行為,使得HashMap家族的利潤大大增加,這兩個家族也不甘寂寞,於是乎也就允許了自己的鍵值對可以為"",但是不能觸碰null的界限.

HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,

主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。 HashMap 把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。

HashMap淺入理解