hashrable與hashmap與treemap的區(qū)別?
Hashtable、HashMap、TreeMap都實現(xiàn)了Map接口,使用鍵值對的形式存儲數(shù)據(jù)和操作數(shù)據(jù)。Hashtable是java早期提供的,方法是同步的(加了synchronized)。key和value都不能是null值。
HashMap的方法不是同步的,支持key和value為null的情況。行為上基本和Hashtable一致。由于Hashtable是同步的,性能開銷比較大,一般不推薦使用Hashtable。通常會選擇使用HashMap。
HashMap進行put和get操作,基本上可以達到常數(shù)時間的性能
TreeMap是基于紅黑樹的一種提供順序訪問的Map,和HashMap不同,它的get或put操作的時間復(fù)雜度是O(log(n))。具體的順序由指定的Comparator來決定,或者根據(jù)鍵key的具體順序來決定。