Инициализация булевого массива в 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