为什么java中的HashMap内部使用数组来存储Entry对象而不是ArrayList?
最佳答案
原因很可能是 HashMap
需要控制如何根据条目数和给定的 loadFactor
调整其内部表的大小。
因为 ArrayList
没有公开将其内部数组调整为特定大小的方法(HashMap
使用 2 的幂作为其大小来优化重新散列,但是 ArrayList
将容量乘以 1.5),这根本不是一个值得考虑的选项。
此外,即使 ArrayList 确实以同样的方式增加了容量,依靠这个内部细节会将这两个类联系在一起,没有留下任何空间来更改 ArrayList 的内部实现code> 稍后再说,因为它可能会破坏 HashMap
或至少降低内存效率。
关于java - 为什么java中的HashMap内部使用数组来存储Entry对象而不是ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42872642/