Arraylist與LinkedList的區別

ArrayList

  • 底層是個默認大小爲10的數組,所以當size需求大於10時,初始化size的時候大一點。
  • 當ArrayList的寫滿之後,ArrayList會生成一個更大的數組,大小變爲原來的1.5倍。然後將原來數組的數據拷貝過去,因此會佔用一定的時間和內存。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void ensureCapacity(int var1) {
    ++this.modCount;
    int var2 = this.elementData.length;
    if(var1 > var2) {
    Object[] var3 = this.elementData;
    int var4 = var2 * 3 / 2 + 1;
    if(var4 < var1) {
    var4 = var1;
    }
    this.elementData = Arrays.copyOf(this.elementData, var4);
    }
    }
  • 適合隨機訪問

LinkedList

  • 底層是List,適用於頻繁添加刪除元素的情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章