инициализация логического массива в java



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



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


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

787   5  

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

    Ничего не найдено.