//来源于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");  
    }