Как получить первый и последний элемент списка
Короткий ответ
С 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() — Возвращает элемент списка по индексу.