📜  如何在Java中初始化后扩展数组?(1)

📅  最后修改于: 2023-12-03 14:52:45.382000             🧑  作者: Mango

如何在Java中初始化后扩展数组?

在Java中,数组是一种常见的数据结构,它能够保存一组相同类型的数据。我们经常需要对数组进行初始化和扩展操作。下面将介绍如何在Java中初始化数组以及如何在初始化后扩展数组。

初始化数组

初始化数组有两种方法:静态初始化和动态初始化。

静态初始化

静态初始化是指在定义数组时就给它赋初值。静态初始化的方式有两种:

第一种方式

int[] array = {1, 2, 3, 4, 5};

第二种方式

int[] array = new int[]{1, 2, 3, 4, 5};
动态初始化

动态初始化是指在定义数组时不给它初始化值,而是定义一个数组长度,之后再对数组元素进行初始化。动态初始化的方式如下:

int[] array = new int[5];

上面代码定义了一个长度为5的整型数组array,数组中的每个元素都被初始化为0。

扩展数组

在使用数组时,可能需要增加或删除数组中的元素。由于Java中数组的长度是不可变的,所以我们需要通过新建一个数组并将原数组中的元素复制过去的方式来扩展数组。

在数组尾部扩展数组

在数组尾部扩展数组,需要先声明一个更大的数组,然后将原数组中的元素复制到新数组中:

int[] array = {1, 2, 3, 4, 5};
int[] newArray = new int[array.length + 1];
for (int i = 0; i < array.length; i++) {
    newArray[i] = array[i];
}
newArray[array.length] = 6;
array = newArray;

在上面的代码中,我们声明了一个长度比原数组多1的新数组newArray。然后,我们通过一个循环将原数组array中的元素复制到newArray中,并将新元素6添加到newArray的最后,最后将newArray赋值给原数组array。

在数组中间插入元素

在数组中间插入元素,需要先声明一个更大的数组,然后将原数组和插入的元素复制到新数组中:

int[] array = {1, 2, 3, 4, 5};
int[] newArray = new int[array.length + 1];
int insertIndex = 2;
for (int i = 0; i < array.length; i++) {
    if (i < insertIndex) {
        newArray[i] = array[i];
    } else {
        newArray[i + 1] = array[i];
    }
}
newArray[insertIndex] = 10;
array = newArray;

在上面的代码中,我们声明了一个长度比原数组多1的新数组newArray。然后,我们通过一个循环将原数组array中的元素复制到newArray中,并将新元素10插入到newArray的第3个位置,最后将newArray赋值给原数组array。

在数组尾部删除元素

在数组尾部删除元素,需要先声明一个比原数组少1的数组,然后将原数组中除了最后一个元素外的其他元素复制到新数组中:

int[] array = {1, 2, 3, 4, 5};
int[] newArray = new int[array.length - 1];
for (int i = 0; i < array.length - 1; i++) {
    newArray[i] = array[i];
}
array = newArray;

在上面的代码中,我们声明了一个长度比原数组少1的新数组newArray。然后,我们通过一个循环将原数组array中除了最后一个元素外的其他元素复制到newArray中,最后将newArray赋值给原数组array。

在数组中间删除元素

在数组中间删除元素,需要先声明一个比原数组少1的数组,然后将原数组中被删除的元素前面的元素和删除元素后面的所有元素复制到新数组中:

int[] array = {1, 2, 3, 4, 5};
int[] newArray = new int[array.length - 1];
int deleteIndex = 2;
for (int i = 0; i < array.length - 1; i++) {
    if (i < deleteIndex) {
        newArray[i] = array[i];
    } else {
        newArray[i] = array[i + 1];
    }
}
array = newArray;

在上面的代码中,我们声明了一个长度比原数组少1的新数组newArray。然后,我们通过一个循环将原数组array中被删除元素前面的元素和删除元素后面的所有元素复制到newArray中,最后将newArray赋值给原数组array。

总结

在Java中,数组是一种常见的数据结构。我们可以使用静态初始化和动态初始化两种方式来初始化数组。由于Java中数组的长度是不可变的,我们需要通过新建一个更大或者更小的数组并将原数组中的元素复制过去的方式来扩展或缩小数组。在扩展或缩小数组时,我们需要注意将原数组中的元素复制到新数组中,并将新数组赋值给原数组。