繁体   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