У меня есть этот код
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = 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 .
Массивы в Java начинают индексирование с 0. Итак, в вашем примере вы имеете в виду элемент, который на единицу находится вне массива.
Вероятно, это должно быть что-то вроде freq [Global.iParameter [2] -1] = false;
Вам нужно будет пройти через массив, чтобы инициализировать его все, эта строка инициализирует только последний элемент.
На самом деле, я почти уверен, что значение false по умолчанию для логических значений в Java, так что вам может вообще не понадобиться инициализировать.
С уважением
Массив будет инициализирован на false, когда вы его выделите.
Все массивы в Java инициализируются значением по умолчанию для данного типа. Это означает, что массивы ints инициализируются в 0, массивы booleans инициализируются в false, а массивы ссылочных типов инициализируются в null.
По умолчанию они будут инициализированы в false
. В Java массивы создаются на куче, и каждому элементу массива присваивается значение по умолчанию в зависимости от его типа. Для типа данных boolean
значением по умолчанию является false
.
public static Boolean freq[] = new Boolean[Global.iParameter[2]]];
Global.iParameter[2]:
Это должно быть const value