据我所知,以下是删除 ArrayList
中元素的步骤。
- 不需要对目标元素做任何事情
- 沿着数组从删除元素之后的 1 开始迭代,到最后一个元素
- 将每个元素复制到它之前的位置1
- 将最后一个元素设置为
null
为什么不直接将我们要删除的元素设置为null
?这只需一步。
谁能解释一下上述方案的优点?提前致谢。
最佳答案
因为它们不一样(让我们删除“c”
):
["a", "b", "d", "e"]
["a", "b", null, "d", "e"]
删除和替换有很大区别:
- 删除会更改索引,删除一个元素并移动(影响)其余元素。这也会改变列表的大小。前任。元素
"d"
可在索引2
处访问(从3
移动)。 - 替换项替换了项目并保持元素的索引,列表的大小也保持不变。前任。元素
"d"
可在索引4
处访问(未更改)。
关于java - ArrayList 移除一个元素后为什么要左移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51556909/