回答:
すべての配列要素をブール値falseに初期化する必要があるだけです。
boolean[]
代わりに使用して、すべての値がデフォルトで次のようになるようにしますfalse
。
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チュートリアルを参照してください。
Boolean[] array
:それはあなたが各要素のための3つの状態を持つことができますようtrue
、false
そしてnull
あなたが「処理していない」であることが何かを注意したい場合に便利です。
配列を割り当てると、配列はfalseに初期化されます。
Javaのすべての配列は、型のデフォルト値に初期化されます。つまり、intの配列は0に初期化され、ブール値の配列はfalseに初期化され、参照型の配列はnullに初期化されます。
Boolean
ではなくを使用しているboolean
ため、デフォルトでになりますnull
。
Javaの配列は0からインデックスを開始します。この例では、配列の外側にある要素を1つ参照しています。
おそらく、freq [Global.iParameter [2] -1] = falseのようになります。
すべてを初期化するには、配列をループする必要があります。この行では、最後の要素のみが初期化されます。
実際、Javaのブール値のデフォルトはfalseであるため、初期化する必要はまったくないかもしれません。
宜しくお願いします
Boolean
ではなくを使用しているboolean
ため、デフォルトでになりますnull
。
false
デフォルトで初期化されます。Javaでは、配列はヒープ上に作成され、配列のすべての要素には、その型に応じてデフォルト値が与えられます。以下のためにboolean
データのデフォルト値があるタイプfalse
。
Boolean
ではなくを使用しているboolean
ため、デフォルトでになりますnull
。