java中的数组能够在定以后改变长度吗

Python011

java中的数组能够在定以后改变长度吗,第1张

不可以。

因为Java中的数组长度是不可变的,数组对象的length属性是常量。当然这并不意味着没有解决办法。如果你的确需要数组的容量不断变化,那最好使用ArrayList。如果数组的长度的调整并不频繁,只是偶尔需求,可以使用Arrays.copyOf来“调整数组的长度”,这里的调整长度并不和我开始的回答“数组长度是不可变的”冲突,因为这个方法是new一个更大的数组,把旧数组元素拷贝进去,然会返回给你的。

源代码:(byte数组版本)

public static byte[] copyOf(byte[] original, int newLength) {

        byte[] copy = new byte[newLength]

        System.arraycopy(original, 0, copy, 0,

                         Math.min(original.length, newLength))

        return copy

    }

在Java中,数组对象Array的长度是在实例化时就定死了,不能修改。

像你这种情况,一般是新建一个数组,重新设置长度,可能的话再将老数组里的值拷贝进去:

public class ArrayTest {

public static void main(String[] args) {

int[] arr1 = { 1, 2, 3, 4, 5 }// 初始化一个数组,长度是5(定死了)

int[] arr2 = new int[10]// 重新初始化数组,长度是10

// 将老数组复制到新数组

for (int i = 0i <arr1.lengthi++) {

arr2[i] = arr1[i]

}

// 将老数组对象arr1指向新数组

arr1 = arr2

// 如果不要复制,最简单的就是直接实例化

int[] arr1_1 = new int[5]// 初始化一个数组,长度是5(定死了)

arr1_1 = new int[10]// 再实例化一次,就是一个新数组,以前数组里的东西就不存在类

}

}