1. 程式人生 > >集合類淺談(2)

集合類淺談(2)

雙列集合:
-------------| Map  如果是實現了Map介面的集合類,具備的特點: 儲存的資料都是以鍵值對的形式存在的,鍵不可重複,值可以重複。
----------------| HashMap  底層也是基於雜湊表實現 的。
HashMap的儲存原理:
往HashMap新增元素的時候,首先會呼叫鍵的hashCode方法得到元素 的雜湊碼值,然後經過運算就可以算出該
元素在雜湊表中的儲存位置。 
情況1: 如果算出的位置目前沒有任何元素儲存,那麼該元素可以直接新增到雜湊表中。

情況2:如果算出 的位置目前已經存在其他的元素,那麼還會呼叫該元素的equals方法與這個位置上的元素進行比較

,如果equals方法返回 的是false,那麼該元素允許被儲存,如果equals方法返回的是true,那麼該元素被視為
重複元素,不允儲存。


----------------| TreeMap   TreeMap也是基於紅黑樹(二叉樹)資料結構實現 的, 特點:會對元素的鍵進行排序儲存。


TreeMap 要注意的事項
1.  往TreeMap新增元素的時候,如果元素的鍵具備自然順序,那麼就會按照鍵的自然順序特性進行排序儲存。
2.  往TreeMap新增元素的時候,如果元素的鍵不具備自然順序特性, 那麼鍵所屬的類必須要實現Comparable介面,把鍵

的比較規則定義在CompareTo方法上。
3. 往TreeMap新增元素的時候,如果元素的鍵不具備自然順序特性,而且鍵所屬的類也沒有實現Comparable介面,那麼就必須

在建立TreeMap物件的時候傳入比較器。


     Collections與Arrays  工具類