ArrayList的容量與長度


ArrayList有一個有參構造方法

    public ArrayList(int initialCapacity) {
        if (initialCapacity > 0) {
            this.elementData = new Object[initialCapacity];
        } else if (initialCapacity == 0) {
            this.elementData = EMPTY_ELEMENTDATA;
        } else {
            throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
        }
    }

也就是我們實例化ArrayList時可以這樣寫:

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

 我第一反應是list的初始長度為30,因此我寫了這樣一條代碼:

list.set(0,"first");

 結果卻報了這么一個異常

於是我調用size()方法,返回的結果是:

size = 0

 也就是說,該構造方法並不是將ArrayList()初始化為指定長度,而是指定了其內部的Object數組的長度,也就是其容量。因此,當我們調用size()時,返回的是其實際長度,而非容量大小,同時,對超出ArrayList長度的部分進行訪問或賦值操作時也會造成訪問越界,盡管它的容量大小足夠


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM