[英]initializing a boolean array in java
我有這個代碼
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
有人能告訴我我在這里做錯了什么,我將如何糾正它? 我只需要將所有數組元素初始化為 Boolean false。 謝謝你
我只需要將所有數組元素初始化為 Boolean 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 教程。
分配數組時,該數組將被初始化為 false。
Java 中的所有數組都初始化為該類型的默認值。 這意味着整數數組初始化為 0,布爾數組初始化為 false,引用類型數組初始化為 null。
Java 中的數組從 0 開始索引。因此,在您的示例中,您指的是數組外部的一個元素。
它可能應該類似於 freq[Global.iParameter[2]-1]=false;
您需要遍歷數組以初始化所有數組,此行僅初始化最后一個元素。
實際上,我很確定 false 是 Java 中布爾值的默認值,因此您可能根本不需要初始化。
此致
默認情況下,它們將被初始化為false
。 在 Java 中,數組是在堆上創建的,數組的每個元素都根據其類型被賦予一個默認值。 對於boolean
數據類型,默認值為false
。
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
Global.iParameter[2]:
它應該是常量值
主要區別在於 Boolean 是一個對象,而 boolean 是一個原語。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.