2015-10-10 69 views

回答

3

當刪除從ArrayList的元素,所有元素的被刪除的元素之後的索引1。

ArrayList S按陣列被備份降低。在刪除的情況下,後面的數組部分如下,將被刪除的元素複製到數組中從已刪除元素的索引處開始的部分。這是通過System.arraycopy完成:

public E remove(int index) { 
    rangeCheck(index); 
    modCount++; 
    E oldValue = elementData(index); 
    int numMoved = size - index - 1; 
    if (numMoved > 0) 
     // this is the part that moves the following elements 
     System.arraycopy(elementData, index+1, elementData, index, numMoved); 
    elementData[--size] = null; 
    return oldValue; 
} 
1

here

public E remove(int index): 移除此列表中指定位置的元素。將任何 後續元素左移(從其索引中減去1)。

0

將創建一個與舊元素或遵循舊列表

沒有將轉移到左側元素的新名單,因爲ArrayList是mutables。當你移除一個元素時,這會影響當前的對象引用,它將少一個元素。在之後元素被移除的元素將被移到左邊。

1

當您嘗試從arrayList方法中刪除元素時,剩餘的條目將向後移動,因此不存在任何間隙。

刪除此列表中指定位置的元素(可選操作)。將任何隨後的元素向左移(從其索引中減去一個元素)。返回從列表中移除的元素。

感謝

0

命中率。到Javadoc,它將元素移到左邊。看一看

0

你要刪除的那個元素之後的元素將被移動到左邊的 。數組列表元素將被重新排列。