java treemap 内存_Java中Map、HashMap、LinkedHashMap、TreeMap的区别
Map:
Map是一個接口不能實例化,Map接口主要有兩個實現類:HashMap和TreeMap類。其中,HashMap類按哈希算法來存取對象,而TreeMap類可以對鍵對象進行排序;
Map提供了一種映射關系,其中的元素是已鍵值對(key-value)的形式存儲,能夠實現根據key快速查找value;
Map中的鍵值對以Entry類型的對象實例形式存在;
鍵(key值)不可以重復,value值可以;
HashMap:
HashMap是Map的一個重要的實現類,基于哈希表實現;
HashMap中的Entry對象是無序排列的;
Key和Value值都可以為null,但是一個HashMap只能有一個Key值為null的映射(Key不可以重復);
LinkedHashMap:
LinkedHashMap內部有一個鏈表,保持Key插入的順序。迭代的時候也時候按照插入的順序迭代,而且迭代的時候比HashMap快;
LinkedHashMap擁有HashMap的所有特性,比HashMap多維護一個雙向鏈表,因此可以按照插入的順序從頭部或者尾部迭代(是有序的),但是對內存的開銷也要比HashMap大、性能也要差一些;
TreeMap:
TreeMap的底層是通過紅黑數實現的;沒有調優選項,所以該樹處于平衡狀態;它的 containsKey , get , put and remove 方法的時間復雜度是 log(n) ,并且它是按照 key 的自然順序(或者指定排序)排列,與 LinkedHashMap 不同, LinkedHashMap 保證了元素是按照插入的順序排列。
總結
以上是生活随笔為你收集整理的java treemap 内存_Java中Map、HashMap、LinkedHashMap、TreeMap的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java http请求 乱码_怎么解决j
- 下一篇: java 反射访问静态方法_如何使用反射