在java中初始化布尔数组

问题描述 投票:0回答:7

我有这个代码

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

有人可以告诉我我到底做错了什么以及我该如何纠正吗?我只需要将所有数组元素初始化为布尔值 false。 谢谢你

java arrays initialization
7个回答
313
投票

我只需要将所有数组元素初始化为布尔值 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 教程


21
投票

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

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


9
投票

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

它可能应该类似于 freq[Global.iParameter[2]-1]=false;

您需要循环遍历数组来初始化所有数组,这一行仅初始化最后一个元素。

实际上,我很确定 false 是 Java 中布尔值的默认值,因此您可能根本不需要初始化。

致以诚挚的问候


5
投票

默认情况下它们将被初始化为

false
。在Java中,数组是在堆上创建的,并且数组的每个元素根据其类型被赋予一个默认值。对于
boolean
数据类型,默认值为
false


2
投票

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

全局.i参数[2]:

它应该是const值


0
投票

主要区别在于布尔值是对象,而布尔值是基元

  • Object默认值为null;
  • boolean 默认值为 false;

0
投票

我们还可以使用List集合来存储布尔数据:-

List<boolean>result=new List<>();
result.add(condition);
return result;
© www.soinside.com 2019 - 2024. All rights reserved.