Инициализация булевого массива в java

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

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

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

Ответ 1

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

Ответ 2

При его распределении массив будет инициализирован как false.

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

Ответ 3

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

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

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

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

С наилучшими пожеланиями

Ответ 4

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

Ответ 5

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

Global.iParameter [2]:

Значение должно быть const

Ответ 6

вы знаете, что такое кодирование, если вывод такой:

пробег: A = 5 2 2 6 B = 2 5 6 Все элементы в находятся в B.

пробег: A = 5 2 2 6 1 B = 2 5 6 Существуют разные элементы A с B. Элемент A не находится в B = 1

пробег: A = 5 2 2 6 1 B = 2 5 6 3 Существуют разные элементы A с B. Элемент A не находится в B = 1 Элемент B не находится в = 3

пробег: A = 5 2 2 6 1 B = 2 5 6 3 4 Существуют разные элементы A с B. Элемент A не находится в B = 1 Элемент B не находится в = 3 4