有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个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处添加第一个值时,这里有这个值和M个零值,结果是一个大小为M+1的数组。当我在索引0处加上第二个值时,这个值在索引0处,前一个值在索引1处向右移动,还有M个零值,结果是一个大小为M+2的数组,以此类推

我的问题是,如何在我的arraylist的一个特定索引处(在我的例子中,在索引0处)添加一个元素,将之前的元素移动1个索引,而不超过arraylist预定义的容量

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

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


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    如果希望在arraylist中的特定索引处添加值而不增加其长度,最好使用arraylist中的set方法。 使用 ArrayList。集合(整数索引,E元素)