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