gpt4 book ai didi

java - ArrayList 的 ensureCapacity 方法中 "Object oldData[] = elementData;"行的用途是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:34 25 4
gpt4 key购买 nike

我刚刚偶然发现了 Java 6 中的一行,它的功能我不清楚。

就是ArrayList的ensureCapacity(int minCapacity)方法中的Object oldData[] = elementData;行。 oldData 只是看起来是一个局部变量,在方法主体的范围内没有用处。我是否在作业中遗漏了一些隐藏的魔法?

/**
* Increases the capacity of this <tt>ArrayList</tt> instance, if
* necessary, to ensure that it can hold at least the number of elements
* specified by the minimum capacity argument.
*
* @param minCapacity the desired minimum capacity
*/
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
int newCapacity = (oldCapacity * 3)/2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf(elementData, newCapacity);
}
}

最佳答案

没有目的,它是不断发展的代码和草率程序员的产物。

Arrays.copyOf() 是在 JDK 6 中引入的。在此之前,代码必须使用 System.arrayCopy(),这需要引用旧数组(我手头没有 JDK 1.5 安装,但愿意赌这个)。

关于java - ArrayList 的 ensureCapacity 方法中 "Object oldData[] = elementData;"行的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com