Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Collections.emptyList()

Возвращает пустой неизменяемый список. Рядом — emptyMap() и emptySet().

Доступно с: Java 5

Синтаксис

public static final <T> List<T> emptyList()

Возвращаемое значение

List<T>Общий для всей программы пустой список, который нельзя менять.

Примеры

Метод возвращает пустой список вместо null — вызывающему коду не нужны проверки:

List<String> findTags(String post) {
    if (post.isBlank()) {
        return Collections.emptyList();
    }
    return List.of(post.split(" "));
}
 
void main() {
    IO.println(findTags(""));
    IO.println(findTags("java streams"));
    IO.println(findTags("").size());
}

Результат:

[]
[java, streams]
0

Добавить элемент в такой список нельзя:

void main() {
    List<String> tags = Collections.emptyList();
    tags.add("java");
}

Результат:

Exception in thread "main" java.lang.UnsupportedOperationException

Примечания

В современном коде то же самое делает List.of(); разница в том, что emptyList().contains(null) возвращает false, а List.of().contains(null) бросает NullPointerException. Метод не создаёт новый объект при каждом вызове. Если список потом нужно наполнять, создайте new ArrayList<>().

См. также

  • List.of() — Создаёт неизменяемый список из перечисленных элементов.
  • Collections.unmodifiableList() — Возвращает представление списка, которое нельзя изменить.
  • UnsupportedOperationException — Возникает при вызове операции, которую объект не поддерживает, — например, изменение неизменяемой коллекции.
  • Optional.empty() — Возвращает пустой `Optional` — «значения нет».

В учебнике

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.