2013-11-10 80 views

回答

11

Java中的HashMap可以有最大2^30桶,用於存儲條目 - 這是因爲通過java.util.HashMap使用的剷鬥分配技術需要桶的數目是2的冪,並且由於整數已登入Java,最大正值爲2^31 - 1,所以2的最大功率爲2^30。

但是,事實上對於您可以存儲在HashMap中的鍵/值對的數量沒有編程限制 - 一旦您通過2^31 - 1,size()函數就會停止準確。這是因爲處理衝突 - 連接在同一個桶中的鍵/值對,如LinkedList中的節點。一般來說,如果你在任何地方接近2^30的東西,你需要在真實世界的應用程序中跟蹤,你需要更多的內存,而不是在一臺機器上依賴的內存。我曾經使用過的最大的HashMap坐在一個JVM中,擁有幾千萬的條目,全都非常輕巧

相關問題