Sobes.tech
Junior — Middle

Kaip išgauti tik unikalius objektus iš duomenų srauto Stream API?

sobes.tech AI

Atsakymas iš AI

Java Stream API, norint išgauti unikalius objektus iš srauto, naudojama distinct() metodas. Jis grąžina naują srautą, kuriame pašalinti pasikartojimai pagal equals() ir hashCode() metodus.

Pavyzdys:

List<String> list = Arrays.asList("obuolys", "bananas", "obuolys", "apelsinas");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [obuolys, bananas, apelsinas]

Jei objektai yra sudėtingesni ir reikia unikalumo pagal tam tikrą lauką, galima naudoti Collectors.toMap arba filter su pagalbinėmis struktūromis, tačiau paprastiems atvejams distinct() yra pats paprasčiausias būdas.