3
我剛剛在Java 6中找到了一條功能不清楚的線路。「Object oldData [] = elementData」的用途是什麼?在ArrayList的ensureCapacity方法中?
這是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);
}
}
+1,用於追蹤歷史記錄。順便說一句,我的IDE標誌着這個變量沒有被使用,並建議刪除,所以確實沒有必要。 –
+1爲歷史背景,聽起來很有道理,看着java 5源碼:http://javasourcecode.org/html/open-source/jdk/jdk-5.0/java/util/ArrayList.java.html – mtsz