Sobes.tech
Junior — Middle

Kako izvući samo jedinstvene objekte iz toka podataka u Stream API?

sobes.tech АИ

Одговор од АИ

U Java Stream API, za izdvajanje jedinstvenih objekata iz toka koristi se metoda distinct(). Ona vraća novi tok u kojem su uklonjeni duplikati na osnovu metoda equals() i hashCode() objekata.

Primer:

List<String> list = Arrays.asList("jabuka", "banana", "jabuka", "narandža");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [jabuka, banana, narandža]

Ako su objekti složeniji i potrebna je jedinstvenost po određenom polju, može se koristiti Collectors.toMap ili filter sa pomoćnim strukturama, ali za jednostavne slučajeve distinct() je najjednostavniji način.