1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java treemap 内存_Java中Map HashMap LinkedHashMap TreeMap的区别

java treemap 内存_Java中Map HashMap LinkedHashMap TreeMap的区别

时间:2019-12-29 07:14:38

相关推荐

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 保证了元素是按照插入的顺序排列。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。