Создание пустого массива в Java: методы инициализации
Быстрый ответ
Чтобы создать пустой строковый массив, нужно записать:
String[] emptyArray = {};
Этот метод создания пустого массива компактен, надежен и снижает вероятность возникновения NullPointerException
по сравнению с присваиванием null
.
Преимущества использования: эффективность памяти и производительности
С учётом подхода к долгосрочной разработке, мы можем применить принцип переиспользования к нашему небольшому строковому массиву:
public class ArrayUtils {
public static final String[] EMPTY_STRING_ARRAY = new String[0];
// Встречайте наш пустой массив.
}
Когда вам понадобится пустой массив, достаточно обратиться к ArrayUtils.EMPTY_STRING_ARRAY
. Это похоже на использование многоразовых пакетов в повседневной жизни: один и тот же static final
массив готов к использованию в разных участках кода, что способствует экономии памяти.
Другие способы создания пустого массива
С использованием ключевого слова 'new'
Вы можете создать пустой массив, указав его размер:
String[] explicitlyEmpty = new String[0];
"Доступно в 0D (нулевой) размерности."
В использывании библиотеки Apache Commons Lang
Мастера открытого исходного кода от Apache предоставили нам ArrayUtils.EMPTY_STRING_ARRAY
:
String[] emptyArray = ArrayUtils.EMPTY_STRING_ARRAY;
"В мире кода Apache заложил порядок."
Методы возвращают пустые массивы, а не ошибки
Если ваш метод безупречно отработал все задачи, но не найдено ничего для возврата, он может вернуть пустой массив вместо null
:
public String[] searchForValues() {
// Производим поиск...
if (noResultsFound) {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
// Возвращаем найденные значения здесь
}
Ваш метод продолжит функционировать, даже когда «пакеты» у него закончатся.
Визуализация
Вообразите пустой дом (🏠), без обитателей:
Вместо строительного разрешения: String[] noResidents = new String[0];
Или пустой почтовый ящик 📭:
String[] emptyMailbox = new String[0]; // Образец пустоты
Что мы увидим, открыв виртуальный почтовый ящик:
📭➡️ [ ] // "Эхо... эхо... эхо..."
Изменчивость размера массива
Определение размера массива
В отличие от мобильных устройств, в Java, установив размер массива, вы не сможете его изменить.
Гибкость при использовании ArrayList<>
Для тех, кто ценит гибкость, ArrayList<String>
– это изменяемый список, который может быть расширен или сокращен по мере необходимости:
List<String> flexibleList = new ArrayList<>(); // Еще более эластичный только учитель йоги.
Перевод обратно в массив возможен в любой момент:
String[] array = flexibleList.toArray(new String[0]);
Ошибки при отсутствии инициализации
Будьте осторожны, если видите следующее:
String[] notInitialized;
notInitialized
– это минное поле. Он будет вызывать ошибку NullPointerException
, пока не получит значение.
Согласованность в Java: уверенность в предсказуемости
Согласованность – основа программирования. Инициализация массивов различных типов осуществляется одним и тем же способом:
int[] emptyInts = new int[0]; // Здесь пусто.
Полезные материалы
- String (Java Platform SE 8) — Официальная документация класса String в Java.
- Arrays (The Java™ Tutorials) — Инструктажный учебник Oracle по работе с массивами.
- How do I declare and initialize an array in Java? — Обсуждение на Stack Overflow о декларации и инициализации массивов.
- Arrays — Обучающий ресурс от Принстонского университета по Java массивам и основным понятиям программирования, связанным с ними.
- Java Practices->Initializing fields to 0 false null is redundant — Лучшие практики по инициализации переменных в Java.
- java – Group a list of objects by an attribute — Не прямо связанно, но полезно для понимания работы с массивами.