Encodera

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

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

Как получить первый и последний элемент списка

Короткий ответ

С Java 21 у списков есть getFirst() и getLast():

void main() {
    var queue = List.of("Anna", "Oleg", "Boris");
 
    IO.println(queue.getFirst());
    IO.println(queue.getLast());
}

Результат:

Anna
Boris

Через индекс

В старых версиях Java используйте get(0) и get(size() - 1):

void main() {
    var queue = List.of("Anna", "Oleg", "Boris");
 
    IO.println(queue.get(0));
    IO.println(queue.get(queue.size() - 1));
}

Результат:

Anna
Boris

Удалить первый или последний

removeFirst() и removeLast() удаляют и возвращают крайние элементы:

void main() {
    var stack = new ArrayList<>(List.of(1, 2, 3));
 
    IO.println(stack.removeLast());
    IO.println(stack);
}

Результат:

3
[1, 2]

Безопасно для пустого списка

Поток с findFirst() возвращает Optional и не падает на пустом списке:

void main() {
    List<String> empty = List.of();
    IO.println(empty.stream().findFirst().orElse("nobody"));
}

Результат:

nobody

Частая ошибка

Вызвать getFirst() у пустого списка:

void main() {
    List<String> names = new ArrayList<>();
    IO.println(names.getFirst());
}

Результат:

Exception in thread "main" java.util.NoSuchElementException

Проверьте isEmpty() перед вызовом.

Функции из этого ответа

  • List.getFirst() — Возвращает первый или последний элемент упорядоченной коллекции.
  • List.get() — Возвращает элемент списка по индексу.

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

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