1. 將元素添加到列表的中間(或開頭)
如果我們想在列表中間插入一個元素,列表內部會發生以下情況。
假設我們有一個包含 11 個元素的列表:

我們想將數字 10,000 插入到索引 5 處的列表中。為此,我們只需要執行:
list.add(5, 10000);
哪裡list是ArrayList變量。該add(int index, type value)方法將值 10000 添加到列表中的位置 5。這是方法中發生的事情add():
步驟 1:數組的所有元素,從第 5 個位置開始,將向數組末尾移動(複製)1 個元素:

請注意,數組的第 5 個和第 6 個單元格中的元素現在相同。
第 2 步:將值 10,000 寫入第 5 個單元格:

現在列表包含數組的所有元素,第五個單元格包含數字 10,000。正是我們想要的。
2. 從列表中刪除一個元素
從列表中刪除元素與插入元素類似,但過程相反。
讓我們從列表中刪除第三個元素。為此,我們需要執行:
list.remove(3);
以下是 remove() 方法中發生的事情:
第 1 步:數組的元素,從第 4 個位置開始,將向數組的開頭移動(複製)1 個元素:

第 2 步:變量的值size將減 1。

請注意,數組末尾有一些灰色值。從技術上講,這些都是垃圾。為了不干擾垃圾回收,它們需要被移除。
第三步:清理垃圾

3. 在 Java 中使用列表的實際例子
讓我們寫一些使用列表的例子:
我們將列出 1 到 20 範圍內的所有偶數:
| 代碼 | 筆記 |
|---|---|
|
創建一個列表對象 循環遍歷所有索引 1如果20索引可以被 2無餘數整除,則將其添加到列表中 |
現在讓我們在屏幕上顯示列表的所有元素:
| 代碼 | 筆記 |
|---|---|
|
創建一個列表對象 循環遍歷所有索引 1如果20數字可以被 2無餘數整除,則將其添加到列表中 從零循環到列表的大小 在屏幕上顯示每個元素 |
刪除元素:
現在讓我們刪除所有可被 4 整除的元素。請注意,從列表中刪除一個元素後,其餘元素的位置會立即改變。
| 代碼 | 筆記 |
|---|---|
|
創建一個列表對象 循環遍歷所有索引 1如果20索引可以被 2無餘數整除,則將其添加到列表中 從零循環到列表的大小 如果列表的元素可以被 4無餘數整除:a)刪除元素 b) 減少 i計數器,以便我們在循環的下一次迭代中獲得相同的索引 |
假設您需要從列表中刪除最後 3 個元素。
以下是錯誤做法:
| 代碼 | 筆記 |
|---|---|
|
創建一個列表對象 列表有10個元素: 2, 4, 6, ... 20n = 10n - 3 = 7(列表還剩9個元素) n - 2 = 8(列表還剩8個元素) n - 1 = 9(列表還剩7個元素) |
刪除第 7 個和第 8 個元素後,列表中將只剩下 8 個元素。這意味著將無法刪除第 9 個元素——程序中將發生錯誤。
這是刪除元素的正確方法:
| 選項1 | 選項 2 |
|---|---|
|
|
元素需要從末尾或另一個一致的位置刪除,因為元素在每次刪除操作後都會移動一個。
GO TO FULL VERSION