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 , ... 20 n = 10 n - 3 = 7 (列表還剩9個元素) n - 2 = 8 (列表還剩8個元素) n - 1 = 9 (列表還剩7個元素) |
刪除第 7 個和第 8 個元素後,列表中將只剩下 8 個元素。這意味著將無法刪除第 9 個元素——程序中將發生錯誤。
這是刪除元素的正確方法:
選項1 | 選項 2 |
---|---|
|
|
元素需要從末尾或另一個一致的位置刪除,因為元素在每次刪除操作後都會移動一個。
GO TO FULL VERSION