将更多的对象存储在哈希图中,而不是int范围



我正在阅读有关hashmap的信息。HashCodereturns int值。如果我有巨大的哈希图,这需要存储比int范围更多的对象。考虑到每个对象hashcode()方法将返回唯一值。在这种情况下,会发生什么

  1. 有什么例外吗?或
  2. 它会随机行为吗?

您的意思是存储超过20亿个条目吗?Java收集或地图无法做到这一点,它们的大小始终是INT值。

有第三方图书馆用于大型地图。

您是否确定可以将这些对象存储在内存中?一个对象至少需要24个字节(您将不超出压缩oops的范围),因此您将使用超过100 GB的RAM,即Hashmap中存储的非常小的对象。

ps:我不明白您的意思是"返回唯一值"。哈希代码不必是唯一的。对于20亿个入口哈希地图,32位哈希代码有点弱,但在理论上仍然可以。

最新更新