【发布时间】:2019-07-12 08:00:04
【问题描述】:
我搜索了很多,但没有找到相同的结果:- 如果在这种情况下达到最大容量,hashmap 调整大小如何工作? 它是否会因为无法增加其大小 max size(2
【问题讨论】:
标签: java collections hashmap
我搜索了很多,但没有找到相同的结果:- 如果在这种情况下达到最大容量,hashmap 调整大小如何工作? 它是否会因为无法增加其大小 max size(2
【问题讨论】:
标签: java collections hashmap
查看源代码,它只是停止将自身调整到超出最大尺寸。
这意味着(如果您甚至可以在不首先耗尽内存的情况下达到这一点),您将不会获得任何额外的存储桶。但是无论如何你不能得到更多,因为hashCode 返回一个int,并且使用 2^30,你也已经几乎达到了那里的范围。 Java 中的数组也不能超过int-indexed(HashMap 存储桶存储在数组中)。
再次假设您有足够的内存,您可以继续添加更多元素,它们只会“碰撞”到相同的存储桶中。
【讨论】: