私はこのコードを持っています
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
誰かが私がここで間違っていることを正確に教えてもらえますか?すべての配列要素をブールfalseに初期化する必要があります。ありがとうございました
すべての配列要素をブール値のfalseに初期化するだけです
すべての値がデフォルトでfalse
になるように、代わりにboolean[]
を使用します。
boolean[] array = new boolean[size];
またはArrays#fill()
を使用して、配列全体を Boolean.FALSE
で埋めます:
Boolean[] array = new Boolean[size];
Arrays.fill(array, Boolean.FALSE);
また、配列インデックスはゼロベースであることに注意してください。 freq[Global.iParameter[2]] = false;
行があると、ArrayIndexOutOfBoundsException
が発生します。 Javaの配列の詳細については、 この基本的なOracleチュートリアル を参照してください。
配列は、割り当て時にfalseに初期化されます。
Javaのすべての配列は、タイプのデフォルト値に初期化されます。つまり、intの配列は0に初期化され、ブール値の配列はfalseに初期化され、参照型の配列はnullに初期化されます。
Javaの配列は0からインデックス付けを開始します。したがって、この例では、配列の外側にある要素を1つずつ参照しています。
おそらくfreq [Global.iParameter [2] -1] = false;のようなものでなければなりません。
すべてを初期化するには配列をループする必要があります。この行は最後の要素のみを初期化します。
実際、Javaのブール値のデフォルトはfalseであるため、初期化する必要はまったくないかもしれません。
宜しくお願いします
これらはデフォルトでfalse
に初期化されます。 Javaでは、配列がヒープ上に作成され、配列のすべての要素にその型に応じたデフォルト値が与えられます。 boolean
データ型の場合、デフォルト値はfalse
です。
public static Boolean freq [] = new Boolean [Global.iParameter [2]];
Global.iParameter [2]:
Const値である必要があります