java - ArrayList 移除一个元素后为什么要左移?

标签 java list loops arraylist null

据我所知,以下是删除 ArrayList 中元素的步骤。

  1. 不需要对目标元素做任何事情
  2. 沿着数组从删除元素之后的 1 开始迭代,到最后一个元素
  3. 将每个元素复制到它之前的位置1
  4. 将最后一个元素设置为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/

相关文章:

java - 设置警报到期时间

java - Java中ehcache在磁盘中的持久化存储

python - 枚举列表中的特定项目

java - 在对象数组中搜索某些值

Java2EE总是使用MVC2架构?

java - 如何检查 JZMQ 套接字是否已连接

python - Pandas :每个日期的频率以列表的形式按列分组

c++ - 转换结构化列表 C++ 将列表从一个类传递到另一个类

c++ - 在 for 循环中使用 push_front 不会将成员永久添加到列表中

Javascript - 如果另一个值不存在,则从数组中删除值