java集合框架之Map的實現類

1.Map的常用實現類

HashMap:     採用哈希表算法, 此時Map中的key不會保證添加的先後順序,key也不允許重複.

                      key判斷重複的標準是: key1和key2是否equals爲true,並且hashCode相等.


TreeMap:      採用紅黑樹算法,此時Map中的key會按照自然順序或定製排序進行排序,,key也不允許重複.

                      key判斷重複的標準是: compareTo/compare的返回值是否爲0.


LinkedHashMap:  採用鏈表和哈希表算法,此時Map中的key會保證先後添加的順序,key不允許重複.

                          key判斷重複的標準和HashMap中的key的標準相同.


Hashtable:     採用哈希表算法,是HashMap的前身(類似於Vector是ArrayList的前身).打死不用.

                       在Java的集合框架之前,表示映射關係就使用Hashtable.


                       所有的方法都使用synchronized修飾符,線程安全的,但是性能相對HashMap較低.
Properties:     Hashtable的子類,此時要求key和value都是String類型.
                       用來加載資源文件(properties文件).
--------------------------------------------------------------------------------------
 一般的,我們定義Map,key都使用不可變的類(String),把key作爲value的唯一名稱.
--------------------------------------------------------------------------------------
HashMap和TreeMap以及LinkedHashMap都是線程不安全的,但是性能較高:
解決方案: Map m = Collections.synchronizedMap(Map對象);

Hashtable類是線程安全的,但是性能較低.


哈希表算法:做等值查詢最快.
數結構算法:做範圍查詢最快-->應用到索引上
.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章