Java如何在给定位置将元素插入数组?

众所周知,Java中的数组是固定大小的对象,一旦创建,数组的大小就无法更改。因此,如果您希望有一个可调整大小的类似数组的对象,可以在给定位置插入元素,则可以使用java.util.List对象类型。

本示例将向您展示如何使用java.util.Listandjava.util.ArrayList对象实现数组插入。让我们看下面的代码片段。

package org.nhooo.example.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayInsert {
    public static void main(String[] args) {
        // 创建一个整数数组并打印原始值。
        Integer[] numbers = new Integer[]{1, 2, 3, 8, 13, 21};
        System.out.println("Original numbers: " +
            Arrays.toString(numbers));

        // 创建一个ArrayList对象并添加数字的全部内容
        //数组到列表中。我们使用add(index,element)方法添加
        // 元素= 5,索引= 3。
        List<Integer> list = new ArrayList<>();
        list.addAll(Arrays.asList(numbers));
        list.add(3, 5);

        // 将列表转换回数组对象并打印新值。
        numbers = list.toArray(new Integer[list.size()]);
        System.out.println("After insert    : " + Arrays.toString(numbers));
    }
}

在原始Integer数字数组上方的代码段中,通过使用方法将数组的所有元素添加到列表中,原始数字数组将被转换为List,在这种情况下,我们ArrayList将使用List.addAll()。的Arrays.asList()可以使用的阵列转换成一个集合类型对象。

接下来,我们在Listusingadd(int index, E element)方法中插入一个新元素。index插入/添加位置在哪里element,元素是要插入的位置。插入新元素后,我们将Listback转换回原始数组。

下面是上面代码片段的结果:

Original numbers: [1, 2, 3, 8, 13, 21]
After insert    : [1, 2, 3, 5, 8, 13, 21]