![](/img/trans.png)
[英]Why does Hashmap Internally use LinkedList instead of 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.