Sobes.tech
Junior — Middle

Как да извлечем само уникални обекти от поток от данни в API Stream?

sobes.tech AI

Отговор от AI

В Java Stream API за извличане на уникални обекти от поток се използва методът distinct(). Той връща нов поток, в който са премахнати дублиращите се елементи въз основа на методите equals() и hashCode() на обектите.

Пример:

List<String> list = Arrays.asList("ябълка", "банан", "ябълка", "портокал");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [ябълка, банан, портокал]

Ако обектите са сложни и е необходима уникалност по определено поле, може да се използва Collectors.toMap или filter с помощни структури, но за прости случаи distinct() е най-лесният начин.