一個布爾值數組我有這樣的代碼初始化在Java
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
可能有人告訴我,我做什麼錯在這裏和如何將我糾正嗎?我只需要將所有數組元素初始化爲布爾值false。 謝謝
一個布爾值數組我有這樣的代碼初始化在Java
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
可能有人告訴我,我做什麼錯在這裏和如何將我糾正嗎?我只需要將所有數組元素初始化爲布爾值false。 謝謝
我只需要將所有數組元素初始化爲布爾值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中的數組的更多信息,請參閱this basic Oracle tutorial。
當您分配數組時,它將被初始化爲false。
Java中的所有數組都被初始化爲該類型的默認值。這意味着整數的數組被初始化爲0,布爾的數組被初始化爲false,並且引用類型的數組被初始化爲空。
他使用'布爾',而不是'布爾',所以它會默認爲'null'。 – BalusC 2010-03-02 16:50:19
正確。我沒有看到。 Arrays.fill應該做的伎倆。 – 2010-03-02 17:15:14
public static Boolean freq [] = new Boolean [Global.iParameter [2]];
Global.iParameter [2]:
應該是const值
這是不正確的。也可能是變數。問題是您正在使用Global.iParameter [2]來訪問數組。但指數從0直到Global.iParameter [2] -1! – Karussell 2010-03-02 16:47:17
Java中的數組開始索引爲0.因此,在您的示例中,您指的是數組之外的元素。它應該可能類似於freq [Global.iParameter [2] -1] = false;
您需要遍歷數組以初始化所有數據,該行只會初始化最後一個元素。
實際上,我非常確定在Java中布爾值的默認值是false,因此您可能不需要初始化。
最好的問候
他使用'布爾',而不是'布爾',所以它將默認爲'null'。 – BalusC 2010-03-02 16:45:59
這非常有益 – 2010-03-02 16:46:07
第二段代碼對於我們想將它初始化(設置)爲所有真值的情況是有益的。很好的答案! – despot 2011-09-06 13:11:36
我寧願反轉變量名稱,並使用默認的初始值和假值。 – BalusC 2015-07-03 18:27:15