【Java核心-基础】哈希表 Map

.

HashMap

这是最常使用的哈希表实现。

非线程安全。

在理想情况下,如果哈希散列正常,put 和 get 等操作可达到常数时间的性能。

HashMap 使用了 链地址法 来解决哈希冲突;当冲突元素较多时又会用 树结构 替代单链表,来存储数据,以提高存取效率。

(《哈希表解决哈希冲突的方法》)

 

Hashtable

这是早期Java类库提供的一个哈希表实现。行为与 HashMap 大致相同。

线程安全;不支持 null 键和值

因为同步性能开销,不推荐使用。在需要线程安全的场景中可以使用性能更好的 ConcurrentHashMap。

 

TreeMap

这是基于红黑树的 Map,支持按照 key 的排序顺序遍历数据(可通过构造方法指定 key 的 Comparator)

它的 get、put、remove 等操作时间复杂度都是 O(long(n))。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值