拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何在ArrayList中的特定位置插入对象

如何在ArrayList中的特定位置插入对象

白鹭 - 2022-11-27 2396 0 2

一、概述

在本教程中,我们将学习如何在ArrayList中的特定位置插入对象。

2.例子

如果我们想将一个元素添加到ArrayList的特定位置,我们可以使用通过实现List<E>接口提供的add(int index, E element)方法这个方法让我们在特定索引处添加一个元素。

如果索引超出范围(index < 0 or index > size()),它也可以抛出IndexOutOfBoundsException这意味着如果我们在ArrayList中只有4 个项目,我们不能使用它在位置4 添加项目,因为我们从0 开始计数。我们必须在这里使用标准的add(E e)方法。

首先,我们将创建一个新的ArrayList并向其添加四个元素:

List<Integer> integers = new ArrayList<>();
 integers.add(5);
 integers.add(6);
 integers.add(7);
 integers.add(8);
 System.out.println(integers);

这将导致:

image.png

现在,如果我们在索引1 处添加另一个元素:

integers.add(1,9);
 System.out.println(integers);

ArrayList 内部将首先移动从给定索引开始的对象:

image.png

这是可行的,因为ArrayList是一个可增长的数组,可以根据需要自动调整容量:

image.png

然后在给定索引处添加新项目:

image.png

添加特定索引将导致ArrayList的平均操作性能为O(n/2)例如,LinkedList,的平均复杂度为O(n/4),如果索引为0,则复杂度为O(1)。因此,如果我们严重依赖于在特定位置添加元素,则需要仔细研究LinkedList

我们还可以看到元素的顺序不再正确。当我们在特定位置手动添加项目时,这是我们经常想要实现的。否则,我们可以使用integers.sort(Integer::compareTo)再次对ArrayList进行排序或实现我们自己的Comparator.

3.结论

在本文中,我们讨论了add(int index, E element)方法,因此我们可以在特定位置向ArrayList<E>添加新元素。我们必须注意保持在ArrayList的索引范围内,并确保我们允许正确的对象。


标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *