web-dev-qa-db-ja.com

javaのブール配列の初期化

私はこのコードを持っています

public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;

誰かが私がここで間違っていることを正確に教えてもらえますか?すべての配列要素をブールfalseに初期化する必要があります。ありがとうございました

96
leba-lev

すべての配列要素をブール値の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チュートリアル を参照してください。

267
BalusC

配列は、割り当て時にfalseに初期化されます。

Javaのすべての配列は、タイプのデフォルト値に初期化されます。つまり、intの配列は0に初期化され、ブール値の配列はfalseに初期化され、参照型の配列はnullに初期化されます。

18
Jørgen Fogh

Javaの配列は0からインデックス付けを開始します。したがって、この例では、配列の外側にある要素を1つずつ参照しています。

おそらくfreq [Global.iParameter [2] -1] = false;のようなものでなければなりません。

すべてを初期化するには配列をループする必要があります。この行は最後の要素のみを初期化します。

実際、Javaのブール値のデフォルトはfalseであるため、初期化する必要はまったくないかもしれません。

宜しくお願いします

9
Big Endian

これらはデフォルトでfalseに初期化されます。 Javaでは、配列がヒープ上に作成され、配列のすべての要素にその型に応じたデフォルト値が与えられます。 booleanデータ型の場合、デフォルト値はfalseです。

5
codaddict

public static Boolean freq [] = new Boolean [Global.iParameter [2]];

Global.iParameter [2]:

Const値である必要があります

2
oneat