Próbuję wyodrębnić i zliczyć liczbę różnych elementów w wartościach mapy. Chodzi o to, że nie jest to tylko mapa, ale wiele z nich, które należy zdobyć z listy map.Strumień Java. Wyodrębnianie różnych wartości wielu map
W szczególności mam klasę Tournament
z członkiem List<Event> event
. Model event
ma element Map<Localization, Set<Timeslot>> unavailableLocalizations
. Chciałbym policzyć wyróżniki dla wszystkich tych wartości szczelin czasowych.
Do tej pory udało mi się policzyć distincts w jednym mapie tak:
event.getUnavailableLocalizations().values().stream().distinct().count()
Ale czego nie może dowiedzieć się, jak to zrobić, że dla wszystkich mapach zamiast na tylko jeden.
Sądzę, że potrzebowałbym jakiegoś sposobu, aby wziąć wartości mapy każdego wydarzenia i umieścić to wszystko w strumieniu, a reszta byłaby taka sama jak ja.
Nie jestem pewien, czy chłód odniesienia metoda jest na tyle wysoki, aby uzasadnić za pomocą '.map (Event :: getUnavailableLocalizations) .map (Map :: wartości) .flatMap (Collection :: stream) 'zamiast' .flatMap (event -> event.getUnavailableLocalizations(). values (). stream()) '. To drugie ułatwia rozpoznanie brakującego kroku od podejścia PO do ostatecznego rozwiązania. – Holger