在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