инициализация булева массива в Java

У меня есть этот код

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

кто-то мог сказать мне, что точно я делаю неправильно здесь и как я исправил бы его? Я просто должен инициализировать все элементы массива к булевой лжи.спасибо

99
задан BalusC 2 March 2010 в 16:45
поделиться

5 ответов

Мне просто нужно инициализировать все элементы массива логическим значением 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 .

277
ответ дан 24 November 2019 в 04:56
поделиться

Массивы в Java начинают индексирование с 0. Итак, в вашем примере вы имеете в виду элемент, который на единицу находится вне массива.

Вероятно, это должно быть что-то вроде freq [Global.iParameter [2] -1] = false;

Вам нужно будет пройти через массив, чтобы инициализировать его все, эта строка инициализирует только последний элемент.

На самом деле, я почти уверен, что значение false по умолчанию для логических значений в Java, так что вам может вообще не понадобиться инициализировать.

С уважением

9
ответ дан 24 November 2019 в 04:56
поделиться

Массив будет инициализирован на false, когда вы его выделите.

Все массивы в Java инициализируются значением по умолчанию для данного типа. Это означает, что массивы ints инициализируются в 0, массивы booleans инициализируются в false, а массивы ссылочных типов инициализируются в null.

19
ответ дан 24 November 2019 в 04:56
поделиться

По умолчанию они будут инициализированы в false. В Java массивы создаются на куче, и каждому элементу массива присваивается значение по умолчанию в зависимости от его типа. Для типа данных boolean значением по умолчанию является false.

5
ответ дан 24 November 2019 в 04:56
поделиться

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

Global.iParameter[2]:

Это должно быть const value

2
ответ дан 24 November 2019 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: