gpt4 book ai didi

java - 在 ArrayList 的特定索引处插入对象而不增加该 ArrayList 的容量 - Java

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:06 25 4
gpt4 key购买 nike

我有一个ArrayList:

List<Integer> array = new ArrayList<Integer>(M);

在我的代码中的某个时刻,我在此数组列表的特定索引处添加了一个新的整数值:

array.add(index, value);

该方法的文档说明:

Inserts the specified element at the specified position in this list (optional operation). Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).

那很好,因为那是我真正想做的。问题是,每当我这样做时,数组的大小都会增加 1。也就是说,最初我有一个大小为 M 的数组,其中填充了零。当我在索引 0 处添加第一个值时,我会在索引 0 处添加该值和 M 个零值,从而生成一个大小为 M + 1 的数组。当我在索引 0 处添加第二个值时,我会在索引 0 处添加该值,前一个值在索引 1 处向右移动,并有 M 个零值,从而生成一个大小为 M + 2 的数组,等等。

我的问题是,如何在数组列表的特定索引处添加元素(在我的例子中,在索引 0 处)将前面的元素移动 1 个索引,而不超出数组列表的预定义容量?

(我不得不说,ArrayList 是 Java 中最常见的结构之一,但也是让我最困惑的结构之一......)

编辑:我必须注意,最初我使用 for 循环用 M 个零值填充数组列表,因此我有例如对于 M = 5 ,像这样的数组列表。 [0, 0, 0, 0, 0]

最佳答案

您可以删除列表的最后一个元素,然后再插入。这将保持大小不变​​

关于java - 在 ArrayList 的特定索引处插入对象而不增加该 ArrayList 的容量 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com