To pytanie dotyczy mapowania i grupowania elementów za pomocą kolektorów Java 8. Mam listę pacjentów. Każdy Pacjent ma listę oddziałów, które odwiedził. Powiedz, że chcę liczyć dla każdego działu, ile czasu zostało odwiedzone przy użyciu nowego interfejsu API kolektorów w java 8, w jaki sposób mogę pogrupować według listy departamentów?Java 8 Collectors API
Dzięki!
UWAGA: wiem, że mogę umieścić licznik w każdym z działów, to pytanie jest wyłącznie do celów nauki Nowa aplikacja Java 8 możliwości.
Kod:
public class Patient {
private String id;
private List<Department> history;
/* some more getters/setters come here */
}
W moim głównym sposobem mam listę Pacjenta. Chcę wiedzieć dla każdego Wydziału, ile czasu zostało odwiedzonych, bez edytowania klasy Wydziału (lub przedłużania lub dekorowania jej).
Myślę, że muszę wziąć strumień pacjentów i zamapować je na mapę dept-> count (ile razy każdy pacjent odwiedził który dept.). Mając strumień tych map - nie mam pojęcia, co zrobić, aby pogrupować te mapy i policzyć je.
Jest to prawdopodobnie najlepiej wytłumaczyć według kodu. Zdefiniuj swój kod pacjenta i działu, aby każdy mógł się z nim zapoznać. –
@owlstead: Dodałem pola klasy Pacjent. To powinno być proste. Po prostu nie mogę tego znaleźć. Zauważ, że nie dodałem kodu do działu, ponieważ nie ma on znaczenia, może być łatwo ciągiem znaków. –