Sobes.tech
Junior — Middle

Jak wyodrębnić tylko unikalne obiekty z przepływu danych w API Stream?

sobes.tech AI

Odpowiedź od AI

W API Stream Java, do wyodrębniania unikalnych obiektów z strumienia używa się metody distinct(). Zwraca ona nowy strumień, w którym usunięto duplikaty na podstawie metod equals() i hashCode() obiektów.

Przykład:

List<String> list = Arrays.asList("jabłko", "banan", "jabłko", "pomarańcza");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [jabłko, banan, pomarańcza]

Jeśli obiekty są złożone i potrzebna jest unikalność po określonym polu, można użyć Collectors.toMap lub filter z pomocą struktur pomocniczych, ale dla prostych przypadków distinct() jest najprostszym sposobem.