【发布时间】:2013-11-05 13:10:50
【问题描述】:
在ArrayList中,它基本上是使用grow方法增长到一个新的大小:
private void grow(int minCapacity) {
...
...
elementData = Arrays.copyOf(elementData, newCapacity);
}
在 HashMap 中,它表示它将内容重新散列到一个新数组中:
Entry[] newTable = new Entry[newCapacity];
...
transfer(...)
在数组列表中,Arrays.copyOf 调用 System.arraycopy。在 HashMap 中,它使用 while 循环将所有元素传输到新数组中。这两个集合之间有什么特别的区别,因为它们最终都会创建一个新数组吗?
【问题讨论】:
-
数组支持的列表和哈希表支持的映射之间有什么区别吗?是的,有很多,所以计算相似之处比计算差异更容易。