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.