//来源于http://www.iteye.com/topic/577602
import java.util.ArrayList;
public class EnsureCapacityTest {
public static void main(String[] args){
final int N = 1000000; //very large may lead to error of java.lang.OutOfMemoryError: Java heap space
Object obj = new Object();
//没用调用ensureCapacity()方法初始化ArrayList对象
ArrayList<Object> list = new ArrayList<Object>();
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<Object>();
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");
}
}
转载于:https://blog.51cto.com/wudong/794794
本文通过一个具体的Java代码示例,展示了如何使用ArrayList的ensureCapacity方法来提高程序运行效率。实验结果显示,在处理大量数据时,预先设置ArrayList容量可以显著减少执行时间。
199

被折叠的 条评论
为什么被折叠?



