我有这个代码
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 中的所有数组都被初始化为该类型的默认值。这意味着整数数组初始化为 0,布尔数组初始化为 false,引用类型数组初始化为 null。
Java 中的数组从 0 开始索引。因此,在您的示例中,您引用的是数组之外的元素 1。
它可能应该类似于 freq[Global.iParameter[2]-1]=false;
您需要循环遍历数组来初始化所有数组,这一行仅初始化最后一个元素。
实际上,我很确定 false 是 Java 中布尔值的默认值,因此您可能根本不需要初始化。
致以诚挚的问候
默认情况下它们将被初始化为
false
。在Java中,数组是在堆上创建的,并且数组的每个元素根据其类型被赋予一个默认值。对于 boolean
数据类型,默认值为 false
。
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
全局.i参数[2]:
它应该是const值
主要区别在于布尔值是对象,而布尔值是基元。
我们还可以使用List集合来存储布尔数据:-
List<boolean>result=new List<>();
result.add(condition);
return result;