与Treemap相比,Hashmap重新命名及其随后对性能的影响


HashMap: intialCapacity=1000; loadFactor=0.75; 

上面的意思是,hashmap将重新尺寸约1000*75 = 750进入2000年。此时会重新进行重新调查吗?如果是,那么表演将如何影响?如果没有,那什么时候?在max_capacity上?

treemap:不重新进行,而是分类。文档表明插入/阅读/搜索始终是o(log n)。但是,排序/new-en-entry/delete-entry是否总是重新大小整个三端尺寸?

在上述方案和整体性能的Bigo符号方面,两者如何比较?

Hashmap和ConcurrentHashMap是高度使用的实现,但比较中的Treemap并不多。我同意仅添加和很少删除的treemap,但高度搜索最好是hashmap/table实现。

任何评论将不胜感激。

编辑:在数据结构摊销方面,应考虑到最佳实践的最坏情况是什么?例如重新绘制基于哈希的地图和/或调整基于树的地图或集合的大小。有一定的权衡,但是假设由于高度无法预测的吞吐量而不断压制数据架构进行修改。

上面的意思是,hashmap将重新尺寸约1000*75 = 750进入2000年。

'大约是Javadoc所说的水桶数量的两倍。您正在添加不保证的精度。

此时会重新进行?

是的,根据Javadoc。您似乎没有读过。

如果是,那么表演将如何影响?

Javadoc说,整个哈希图都会重新升级。当然,这是o(n),但偶尔会发生,因此渐近为零。

如果没有,那何时?在max_capacity?

见上文。

treemap:没有重新命名,而是排序。

没有重新进行,也没有分类。只是维护有序的数据结构。这不是同一回事。

文档表明插入/读取/搜索始终是o(log n)。

文档指定。这不仅是一个建议。

但是,不是排序/new-entry/delete-entry总是重新大小整个Treemap吗?

否,因为它不在数组中。Javadoc说它被实现为红黑搜索树。

在上述方案和整体性能的Bigo符号方面,两者如何比较?

如有记录。hashmap是o(1),treemap为o(log n)。

我同意仅添加和很少删除但高度搜索的TREEMAP,最好是通过Hashmap/table实现。

我没有。不是。

最新更新