Stream.distinct()
Убирает повторяющиеся элементы потока.
Доступно с: Java 8
Синтаксис
Stream<T> distinct()Возвращаемое значение
Stream<T>Поток без повторов.
Примеры
Уникальные значения в исходном порядке:
void main() {
List<Integer> unique = List.of(3, 1, 3, 2, 1).stream().distinct().toList();
IO.println(unique);
}Результат:
[3, 1, 2]Примечания
Повторы определяются через equals() и hashCode(). Для упорядоченных потоков сохраняется первое вхождение каждого значения. Без потока то же делает new LinkedHashSet<>(list).
См. также
- Set.copyOf() — Создаёт неизменяемое множество из коллекции, отбрасывая повторы.
- LinkedHashSet — Множество, которое помнит порядок добавления элементов.
- Stream.sorted() — Сортирует элементы потока.
Вопросы и ответы по теме
В учебнике
- Операции над потоками — Основные операции Stream API — filter, map, sorted, distinct, limit, skip, count, reduce, anyMatch, findFirst и числовые потоки.