leb*_*lev 99 java arrays initialization
我有这个代码
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里到底出错了什么,我该怎么纠正呢?我只需要将所有数组元素初始化为Boolean false.谢谢
Bal*_*usC 277
我只需要将所有数组元素初始化为Boolean false.
使用boolean[]相反,以便所有值默认为false:
boolean[] array = new boolean[size];
Run Code Online (Sandbox Code Playgroud)
或者使用Arrays#fill()与填充整个数组Boolean.FALSE:
Boolean[] array = new Boolean[size];
Arrays.fill(array, Boolean.FALSE);
Run Code Online (Sandbox Code Playgroud)
另请注意,数组索引基于零.该freq[Global.iParameter[2]] = false;行如你有会导致ArrayIndexOutOfBoundsException.要了解有关Java中数组的更多信息,请参阅此基本Oracle教程.
Jør*_*ogh 19
分配数组时,数组将初始化为false.
Java中的所有数组都初始化为该类型的默认值.这意味着int的数组初始化为0,布尔数组初始化为false,引用类型数组初始化为null.
Java中的数组从0开始索引.因此,在您的示例中,您指的是数组之外的元素.
它可能应该像freq [Global.iParameter [2] -1] = false;
您需要循环遍历数组以初始化所有数组,此行仅初始化最后一个元素.
实际上,我很确定Java中的布尔值是默认值,因此您可能根本不需要初始化.
最好的祝福
它们将false默认初始化为.在Java中,数组是在堆上创建的,并且数组的每个元素都根据其类型被赋予默认值.对于boolean数据类型,默认值为false.
| 归档时间: |
|
| 查看次数: |
340500 次 |
| 最近记录: |