簡體   English   中英

在java中初始化一個布爾數組

[英]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 是一個原語

  • 對象默認值為空;
  • 布爾默認值為 false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM