[英]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.