Как я могу увидеть, если элемент в массиве int пуст? - PullRequest
9 голосов
/ 13 ноября 2008

пример:

Я хочу посмотреть, если array[5] содержит значение или является пустым.

Ответы [ 5 ]

21 голосов
/ 13 ноября 2008

Элементы в примитивных массивах не могут быть пустыми. Они всегда инициализируются чем-то (обычно 0 для int массивов, но зависит от того, как вы объявляете массив).

Если вы объявите массив следующим образом (например):

int [] myArray ;
myArray = new int[7] ;

тогда все элементы по умолчанию будут 0.

Альтернативный синтаксис для объявления массивов:

int[] myArray = { 12, 7, 32, 15, 113, 0, 7 };

где начальные значения для массива (в данном случае размера семь) приведены в фигурных скобках {}.

8 голосов
/ 13 ноября 2008

В массиве Java нет такой вещи, как "пустой" элемент. Если длина массива не менее шести, то элемент 5 существует и имеет значение. Если вы еще ничего не назначили этому местоположению, тогда оно будет иметь нулевое значение, как и у неинициализированного поля объекта.

Если это массив Object потомков, то вы можете проверить, равен ли элемент null.

3 голосов
/ 13 ноября 2008

Вы должны определить, что вы подразумеваете под пустым. В зависимости от типа данных массива вы можете выбрать семантику пустого. Например, если у вас есть массив целых чисел, вы можете решить, что 0 пусто. Или, если массив относится к ссылочным типам, вы можете решить, что null пуст. Затем вы просто проверяете, сравнивая массив [5] == ноль или массив [5] == 0 и т. Д.

2 голосов
/ 13 ноября 2008

Примитивные массивы (int, float, char и т. Д.) Никогда не бывают «пустыми» (я предполагаю, что вы имеете в виду «ноль»), потому что примитивные элементы массива никогда не могут быть нулевыми.

По умолчанию массив int обычно содержит 0 при выделении. Тем не менее, я никогда не полагаюсь на это (я думаю, что потратил слишком много времени на написание кода на C).

Один из способов - выбрать значение, которое вы хотите считать «неинициализированным». Это может быть 0, или -1, или какое-то другое значение, которое вы не собираетесь использовать в качестве допустимого значения. Инициализируйте ваш массив к этому значению после его выделения.

Массивы объектов (String [] и любой массив объектов, расширяющих Object), может иметь нулевые элементы, поэтому вы можете создать массив Integer [] и инициализировать его нулевыми элементами. Я думаю, что мне нравится эта идея лучше, чем использование магического значения, как описано выше.

0 голосов
/ 13 ноября 2008

Создайте константу для определения пустого значения, например:

private static final int EMPTY = -1;

затем создайте массив следующим образом:

int[] myArray = new int[size];
Arrays.fill(myArray, EMPTY);

Затем, чтобы проверить, является ли элемент «пустым», сделайте следующее:

if (myArray[i] == EMPTY)
{
   //element i is empty
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...