Упорядоченные коллекции
Доступ к первому/последнему элементу и получение обратных представлений с помощью чистых методов API.
Сравнение кода
✕ Java 8
// Get last element Object last = list.get(list.size() - 1); // Get first Object first = list.get(0); // Reverse iteration: manual
✓ Java 21+
var last = list.getLast(); var first = list.getFirst(); var reversed = list.reversed();
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Самодокументируемый
getLast() понятнее, чем get(size()-1).
Обратное представление
reversed() возвращает представление — копирование не требуется.
Единый API
Работает одинаково на List, Deque и SortedSet.
Старый подход
Арифметика с индексами
Современный подход
getFirst/getLast
Начиная с JDK
21
Сложность
Начинающий
Поддержка JDK
Упорядоченные коллекции
Доступно
Широко доступно начиная с JDK 21 LTS (сент. 2023)
Как это работает
SequencedCollection добавляет getFirst(), getLast(), reversed(), addFirst() и addLast() к List, Deque, SortedSet и LinkedHashSet. Больше никакой арифметики size-1 или ручной обратной итерации.
Связанная документация
Доказательство