Sobes.tech
Junior — Middle

Hogyan lehet csak egyedi objektumokat kinyerni az adatfolyamból a Stream API-ban?

sobes.tech MI

Válasz az MI-től

A Java Stream API-ban az egyedi objektumok kinyeréséhez a distinct() módszert használjuk. Ez egy új áramlatot ad vissza, amelyben a duplikátumokat az objektumok equals() és hashCode() metódusai alapján eltávolítottuk.

Példa:

List<String> list = Arrays.asList("alma", "banán", "alma", "narancs");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [alma, banán, narancs]

Ha az objektumok összetettek és egy adott mező szerint kell az egyediség, akkor használhatjuk a Collectors.toMap-t vagy a filter-t segédstruktúrákkal, de egyszerű esetekben a distinct() a legegyszerűbb módszer.