在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的数组,请参考这个基本的Oracle教程 。

分配数组时,该数组将被初始化为false。

Java中的所有数组都被初始化为该types的默认值。 这意味着整数的数组被初始化为0,布尔的数组被初始化为false,并且引用types的数组被初始化为空。

Java中的数组以0开始索引。因此,在您的示例中,您指的是数组之外的元素。

它应该可能是像freq [Global.iParameter [2] -1] = false;

你需要遍历整个数组来初始化它,这行只会初始化最后一个元素。

实际上,我非常肯定,Java中的布尔值默认为false,因此您可能不需要初始化。

最好的祝福

他们将被默认初始化为false 。 在Java中,数组是在堆上创build的,数组中的每个元素都根据其types被赋予一个默认值。 对于boolean型数据types,默认值为false

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

Global.iParameter [2]:

它应该是const值

你知道什么是编码,如果这样输出:

运行:A = 5 2 2 6 B = 2 5 6 A中的所有元素都在B中。

运行:A = 5 2 2 6 1 B = 2 5 6 A与B有不同的元素。元素A不在B = 1中

运行:A = 5 2 2 6 1 B = 2 5 6 3 A与B有不同的元素。元素A不在B = 1元素B不在A = 3

运行:A = 5 2 2 6 1 B = 2 5 6 3 4 A和B有不同的元素。元素A不在B = 1中元素B不在A中= 3 4