ensureCapacity()方法提高ArrayList的初始化速度

我們在使用Arraylist時,經常要對它進行初始化工作,在使用add()方法增加新的元素時,如果要增加的數據量很大,應該使用ensureCapacity()方法,該方法的作用是預先設置Arraylist的大小,這樣可以大大提高初始化速度。
請看代碼:
package test;

import java.util.ArrayList;

public class EnsureCapacityTest {
public static void main(String[] args){
final int N = 1000000;
Object obj = new Object();

//沒用調用ensureCapacity()方法初始化ArrayList對象
ArrayList list = new ArrayList();
long startTime = System.currentTimeMillis();
for(int i=0;i<=N;i++){
list.add(obj);
}
long endTime = System.currentTimeMillis();
System.out.println("沒有調用ensureCapacity()方法所用時間:" + (endTime - startTime) + "ms");

//調用ensureCapacity()方法初始化ArrayList對象
list = new ArrayList();
startTime = System.currentTimeMillis();
list.ensureCapacity(N);//預先設置list的大小
for(int i=0;i<=N;i++){
list.add(obj);
}
endTime = System.currentTimeMillis();
System.out.println("調用ensureCapacity()方法所用時間:" + (endTime - startTime) + "ms");
}
}


輸出結果:
沒有調用ensureCapacity()方法所用時間:110ms
調用ensureCapacity()方法所用時間:31ms

結果顯而易見,在N的值很大的時候,使用ensureCapacity()方法可大大提高效率;而當N的值較小時,則所用時間差距不明顯,這裏就不在贅訴,如果感興趣,各位網友可以自己試試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章