Java 6で、機能がはっきりしない行に出くわしました。
ArrayListObject oldData[] = elementData;
のメソッドの行です。メソッド本体のスコープで使用されていないローカル変数のように見えます。課題に隠された魔法が欠けていますか?ensureCapacity(int minCapacity)
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);
}
}