API && MAP <K,V>接口及其相关实现类

67 篇文章 0 订阅
56 篇文章 0 订阅

Map

java.util.Map<K,V>

理解:

Map是一种存储键值对映射的容器类,在Map中键可以是任意类型的对象,但不能有重复的键,每个键都对应一个值,真正存储在图中的是键值构成的条目。

V get(Object key)
获得与键对应的值

V put(K key, V value)
V putAll(Map<? extends K, ? extends V> entries) 将键与对应的值关系插入到映射中

boolean containKey(Object key)
boolean containValue(Object value) 查询

HashMap<K,V>

java.util.HashMap<K,V>

理解:

HashMap是基于哈希表的Map接口的非同步实现,继承自AbstractMapAbstractMap是部分实现Map接口的抽象类。
HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当链表中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。

LinkedHashMap<K,V>

java.util.LinkedHashMap<K,V>

理解:

LinkedHashMap继承HashMap,它主要是用链表实现来扩展HashMap类,HashMap中条目是没有顺序的,但是在LinkedHashMap中元素既可以按照它们插入图的顺序排序,也可以按它们最后一次被访问的顺序排序

TreeMap<K,V>

java.util.TreeMap<K,V>

理解:

TreeMap继承AbstractMap实现map接口。
同时实现了接口NavigableMap,而接口NavigableMap则继承自SortedMap。SortedMap是Map的子接口,使用它可以确保图中的条目是排好序的。
TreeMap基于红黑树数据结构的实现,
键值可以使用ComparableComparator接口来排序。在使用中,如果更新图时不需要保持图中元素的顺序,就使用HashMap,如需保持图中元素的插入顺序或者访问顺序,就使用LinkedHashMap,如需要使图按照键值排序,就使用TreeMap

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值