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