我正在学习Java中的哈希表,有一个与哈希表操作和性能速度相关的问题。
我读到哈希表可以在常数时间内(O(1))执行插入、查找和删除等操作。我正试图弄清楚是什么使哈希表的操作不是常数时间,以及一些这样的操作会是什么。
我认为像size()
这样的操作会是线性时间,因为速度取决于哈希表的大小,但我不确定。
如果您有任何想法,将不胜感激!
我正在学习Java中的哈希表,有一个与哈希表操作和性能速度相关的问题。
我读到哈希表可以在常数时间内(O(1))执行插入、查找和删除等操作。我正试图弄清楚是什么使哈希表的操作不是常数时间,以及一些这样的操作会是什么。
我认为像size()
这样的操作会是线性时间,因为速度取决于哈希表的大小,但我不确定。
如果您有任何想法,将不胜感激!
HashMap
进行了优化。如果桶足够大且键是Comparable
,它将使用二叉树而不是链表,将最坏情况的性能从O(n)提高到O(log n)。