2016-07-18 15 views
1

これはなぜ動的配列と見なされていないのですか?Javaの動的配列? ArrayListを使用するint [] array = new int [n]

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を使用する必要がありますか?

+0

一般に、Javaの配列は動的に割り当てられますが、サイズは固定です(再割り当てしない限り)。 – mkzh

+4

配列を作成するときは、最初に配列のサイズを指定(宣言)します。あなたはリストを使ってそれをする必要はありません。それが主な違いです。後であなたの配列にn個以上の要素が必要であると判断した場合、それは不可能ですが、リストがあれば(リストは魔法をしませんが、あなたはその点を得ます)。 – Gendarme

+0

あなたはそれがダイナミックな配列だと思いますか? – dimo414

答えて

5

Javaには動的配列がありません。アレイが作成されると、のサイズは変更できません

ArrayListは格納用に内部配列を使用しますが、内部的に配列のサイズを変更するので、気にする必要はありません。

もちろん、内部的には、より大きな新しい配列を作成して、より多くのスペースが必要な場合はコピーします。

配列の使用がOKであるかどうかは、指定されたシナリオについてです。あなたの配列の内容のサイズが不明であるか、または変更できる場合は、自分でサイズを変更するのではなく、ArrayListに切り替えます。

関連する問題