Encodera

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

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

Справочник Java

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 и числовые потоки.

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

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