Проверка на null и пустоту массива в Java: if и length

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Java
Скопировать код
if (array != null && array.length > 0) {
    // Массив не пуст и существует
}

В данной проверке убеждаемся, что массив не равен null и содержит элементы — готов к работе.

Кинга Идем в IT: пошаговый план для смены профессии

Погружение в детали: Разбираемся с массивами

Рассмотрим, что представляют собой массивы в Java и каковы могут быть их состояния.

Инициализированный, пустой или null: Познай свой массив

Массив в Java может быть инициализированным значениями, пустым или равным null. Важно отметить, что null отличается от пустого значения: такой массив не просто пуст, он как будто и не существует!

Null против пустого: Две стороны медали

Ситуация, когда array == null, обозначает отсутствие массива, будто такого массива и не было. В то время как пустой массив существует, но не заполнен — он подобен пустому дому.

if (array == null) {
    System.out.println("Призрачный массив на горизонте!");   // Массив не инициализирован
} else if (array.length == 0) {
    System.out.println("Пустотельство и тишина... только крикеты.");  // Конструктор отработал, но элементов в массиве нет
}

Интересный случай null элементов

Массив может быть не только пустым, но и заполненным null-ами. Такой массив напоминает дом, заполненный воздухом — формально он не пуст, но ведь и не содержит в себе ничего заметного?

Java
Скопировать код
boolean isEmptyContainOnlyNulls = true;
if (array != null) {
    for (Object item : array) {
        if (item != null) {
            isEmptyContainOnlyNulls = false;
            break;
        }
    }
}

Такой массив создаёт у нас впечатление пустоты, хотя полностью пустым он не является.

Вместе держаться! Встречаем Apache Commons Lang

Библиотека Apache Commons Lang предлагает класс ArrayUtils, который станет вашим опорным помощником в работе с массивами:

Java
Скопировать код
if (ArrayUtils.isEmpty(array)) {
    System.out.println("Пустота, можно начать заполнять своим кодом!");  // Проверка на null и пустоту массива
}

Визуализация

Представьте массив как почтовый ящик, в котором хранятся письма (элементы массива):

Markdown
Скопировать код
Почтовый ящик (📬): [✉️,✉️,✉️,✉️]

Проверить есть ли почта:

Markdown
Скопировать код
if (array == null || array.length == 0)
    📬: "Сегодня почты нет, можно расслабиться!"
else
    📬: "Почта пришла!"

Простой способ узнать, заполнен ли ящик, или можно отдохнуть.

Используем Java 8+: Применяем Stream API

В версиях Java 8 и выше стали доступны потоки, которые позволяют эффективно работать с массивами:

Java
Скопировать код
boolean isNotEmptyNotGhost = array != null && Arrays.stream(array).noneMatch(Objects::isNull);

Этот код сочетает возможности Arrays.stream() и Objects::isNull, позволяя убедиться, что массив не является "призраком" и содержит элементы.

Полезные материалы

  1. Массивы (Учебные материалы Java™ > Изучение языка Java > Основы языка) — Полное погружение в мир массивов в Java.
  2. Массивы (Java Platform SE 8) — Документация Java API с описанием инструментов для работы с массивами.
  3. Objects (Java Platform SE 8) — Информация о Objects.requireNonNull(), которая поможет в проверках на null.
  4. Java Arrays — Множество примеров использования массивов в Java.
Свежие материалы