栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

TreeMap或HashMap?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TreeMap或HashMap?

哈希表(通常)执行搜索操作(查找),其复杂度限制为

O(n)<=T(n)<=O(1)
,平均情况复杂度为
O(1 +n/k)
;但是,二进制搜索树(BST)执行搜索操作(查找),其复杂度限制为
O(n)<=T(n)<=O(log_2(n))
,平均情况复杂度为
O(log_2(n))
。(您自己)应该了解每个(每个)数据结构的实现,以了解其优缺点,操作时间复杂度和代码复杂度。

例如,哈希表中的条目数通常具有一些固定数量的条目(某些部分可能根本无法填充),其中包含冲突列表。另一方面,树通常每个节点有两个指针(引用),但是如果实现允许每个节点有两个以上的子节点,则树可以更多,并且这允许树随着节点的添加而增长,但可能不允许重复。(Java
TreeMap的默认实现不允许重复)

还有一些特殊情况需要考虑,例如,如果特定数据结构中的元素数量无限制地增加或接近数据结构的基础部分的限制,该怎么办?那么执行一些重新平衡或清理操作的摊销操作又如何呢?

例如,在哈希表中,当表中的元素数变得足够大时,可能发生任意数量的冲突。另一方面,在插入(或删除)之后,树通常需要进行重新平衡过程。

因此,如果您有类似缓存的内容(例如,有界元素的数量或大小是已知的),那么哈希表可能是您的最佳选择。但是,如果您有更多类似字典的内容(例如,填充一次,查找多次),那么我会使用一棵树。

但是,这仅在一般情况下(未提供任何信息)。您必须了解发生的过程,以决定如何使用哪种数据结构来决定使用哪种数据结构。

当我需要一个多图(范围查找)或集合的排序展平时,它就不能是哈希表。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451381.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号