Java中的动态数组?使用ArrayList vs int [] array = new int [n]

时间:2016-07-18 01:01:05

标签: java

所以我很困惑为什么这不被认为是动态阵列?

public static void main(String[] args) {
    Scanner in = new Scanner (System.in);
    int n = in.nextInt();
    int[] array = new int[n];
    for ( int i = 0; i < n; i++) {
        array[i] = i;
    }

    for ( int i = 0; i < n; i++) {
        System.out.print(array[i]);

我应该在这里使用ArrayList还是这个用法好吗?

1 个答案:

答案 0 :(得分:5)

Java没有动态数组。创建阵列后,大小无法更改

ArrayList使用内部数组进行存储,但它会在内部调整数组大小,因此您不必担心它。

当然,它内部只是创建一个新的,更大的数组,并在需要更多空间时复制内容。

至于你对数组的使用是否正常,对于给定的场景,它是。如果您的数组内容大小未知或者可以更改,则切换到ArrayList而不是自己调整大小。