0

Java では、この行で文字列型の配列を作成しましたが、この行String [] ars = {};にエラーは表示されていません。ars[i++] = g;しかし、この行で i が 0 に等しい文字列を挿入しようとすると、java.lang.ArrayIndexOutOfBoundsException: 0 なぜでしょうか?

4

5 に答える 5

3

配列は固定サイズであり、作成後に要素を追加することはできません。配列のサイズは 0 であるため、インデックス 0 でアクセスすることは範囲外です。

Stringコレクションの作成後に のコレクションに要素を追加する場合は、 などのコレクションの使用を検討することをお勧めしますjava.util.ArrayList<String>。次のように使用できます。

//import java.util.*;
ArrayList<String> ars = new ArrayList<String>();
ars.add(g);
于 2013-07-03T19:51:15.917 に答える
2

配列のサイズは固定です。インデックスが配列サイズ以上の場合、要素を追加できません。つまり、0to array.length- 1 の値のみを使用できます。0ここでは、index の値をサイズがゼロの配列に代入しようとして、 AIOOBE.

ArrayList要素が追加されたときに必要に応じて容量を拡張できるようなコレクションを使用します。

于 2013-07-03T19:47:16.547 に答える
0

このエラーが発生すると、[0] には何もありません。{} にも何もありません。

このようにして、あなたは何かを持っています: string a = {"zero", first}, a[0] = zero, a[1] = first

このようにして、あなたも試すことができます。

int tam = 0; を宣言します。

配列を作成します: String a = new String[tam];

したがって、配列の長さを変更した後、変数 tam を変更します。

于 2013-07-03T20:53:39.010 に答える