Java では、この行で文字列型の配列を作成しましたが、この行String [] ars = {};
にエラーは表示されていません。ars[i++] = g;
しかし、この行で i が 0 に等しい文字列を挿入しようとすると、java.lang.ArrayIndexOutOfBoundsException: 0
なぜでしょうか?
5 に答える
配列は固定サイズであり、作成後に要素を追加することはできません。配列のサイズは 0 であるため、インデックス 0 でアクセスすることは範囲外です。
String
コレクションの作成後に のコレクションに要素を追加する場合は、 などのコレクションの使用を検討することをお勧めしますjava.util.ArrayList<String>
。次のように使用できます。
//import java.util.*;
ArrayList<String> ars = new ArrayList<String>();
ars.add(g);
配列のサイズは固定です。インデックスが配列サイズ以上の場合、要素を追加できません。つまり、0
to array.length
- 1 の値のみを使用できます。0
ここでは、index の値をサイズがゼロの配列に代入しようとして、 AIOOBE
.
ArrayList
要素が追加されたときに必要に応じて容量を拡張できるようなコレクションを使用します。
このエラーが発生すると、[0] には何もありません。{} にも何もありません。
このようにして、あなたは何かを持っています: string a = {"zero", first}, a[0] = zero, a[1] = first
このようにして、あなたも試すことができます。
int tam = 0; を宣言します。
配列を作成します: String a = new String[tam];
したがって、配列の長さを変更した後、変数 tam を変更します。