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