集合筆試題

  • JDK1.8中,執行以上程序後,該list進行了幾次擴容?
import java.util.ArrayList;

import java.util.List;

public class Main {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();

        for(int i=0;i<100;i++){

            list.add("a");

        }

    }

}

正確答案:6次

解釋:

初始化

ArrayList的底層是一個動態數組,ArrayList首先會對傳進來的初始化參數initalCapacity進行判斷

如果參數等於0,則將數組初始化爲一個空數組,
如果不等於0,將數組初始化爲一個容量爲10的數組。

擴容時機

當數組的大小大於初始容量的時候(比如初始爲10,當添加第11個元素的時候),就會進行擴容,新的容量爲舊的容量的1.5倍。

10x1.5x1.5x1.5x1.5x1.5=75
10x1.5x1.5x1.5x1.5x1.5x1.5=113

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章