我先學習 Map 集合類,而後再學習 Collection 類;安全
一、HashMap 和 Hashtable 這兩兄弟常常被放到一塊兒來比較,那麼它們有什麼不同呢?多線程
a. HashMap 不是線程安全的;HashTable 是線程安全的,其線程安全是經過Sychronize實現。工具
b. 因爲上述緣由,HashMap 效率高於 HashTable。學習
c.HashMap 的鍵和值能夠爲null,HashTable 不容許鍵或者值爲null。多線程環境下,一般也不是用 HashTable,由於效率低。HashMap 配合 Collections 工具類使用實現線程安全。同時還有 ConcurrentHashMap 能夠選擇,該類的線程安全是經過 Lock 的方式實現的,因此效率高於Hashtable。hashTable是同步的。而HashMap不是,所以 HashMap 更適合單線程環境,而 HashTable適合於多線程環境。線程