ArrayList優化,ensureCapacity的使用與測試
阿新 • • 發佈:2018-11-10
public static void main(String[] args) throws IOException { final int index=10000000; Object obj=new Object(); ArrayList list1=new ArrayList(); long start=System.currentTimeMillis(); for(int i=0;i<index;i++){ list1.add(obj); } System.out.println("未顯示擴容:"+(System.currentTimeMillis()-start)); ArrayList list2=new ArrayList(); long start2=System.currentTimeMillis(); list2.ensureCapacity(index);//顯示的對陣列進行擴容 for(int i=0;i<index;i++){ list2.add(obj); } System.out.println("ensureCapacity顯示擴容:"+(System.currentTimeMillis()-start2)); }
執行結果:
1. 當index為百萬級別時
未顯示擴容:32
ensureCapacity顯示擴容:15
2. 當index為千萬級別時
未顯示擴容:210
ensureCapacity顯示擴容:81
3.當index為億級別時
未顯示擴容:1848
ensureCapacity顯示擴容:11946
當資料量在億級以上通過顯示擴容的操作效率更低了,
這只是個人的初步測試,有什麼錯誤歡迎提出。