簡體   English   中英

為什么Java中的HashMap在內部使用數組存儲條目對象而不是ArrayList?

[英]Why does HashMap in java internally use array to store Entry Objects and not an ArrayList?

為什么Java中的HashMap在內部使用數組存儲Entry對象而不是ArrayList?

原因很可能是HashMap需要根據條目數和給定的loadFactor控制如何調整其內部表的大小。

由於ArrayList不會公開將其內部數組調整為特定大小的方法( HashMap使用2的冪作為其大小來優化重新哈希,但是ArrayList將容量乘以1.5),因此根本不考慮使用此方法。

同樣,即使ArrayList確實以相同的方式增加了容量,依靠這個內部細節也可以將這兩個類聯系在一起,在以后的任何時候都沒有空間更改ArrayList的內部實現,因為它可能破壞HashMap或至少使它的內存效率較低。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM