Dies ist mein Kursmodell in der Klasse Course
:
Dies ist mein Lehrermodell in der Klasse Teacher
:
Ich möchte ein Map<String, List<Course>>
erhalten, aber wenn teacherId
wiederholt wird, füge einfach das Course
in die Liste der Map ein.
Ich verwende groupBy
dafür
und es gibt das Ergebnis wie erwartet.
Aber ich möchte limit
hier, dass sobald 5 Lehrer gefunden werden, aufhören zu verarbeiten und das Ergebnis zurückgibt.
Wie kann es gemacht werden?
Dafür gibt es keine direkte Unterstützung, da das Stoppen und Leben mit möglicherweise unvollständigen Daten eher ungewöhnlich ist.
Eine einfache Lösung, die die ersten fünf Gruppen vollständig sammelt, wäre %Vor% Hier sind die Course
-Listen dieser ersten fünf Lehrer-IDs vollständig.
Eine Lösung, die nach dem Auffinden der 5. Lehrer-ID wirklich aufhört, wäre einfacher mit einer Schleife:
%Vor% Aber es macht wenig Sinn, Listen von Course
s zu sammeln, wenn Sie diesen Listen später nicht vertrauen können. Beachten Sie, dass sogar das letzte Element der Quellliste zur ersten Lehrer-ID gehören kann. Daher müssen Sie die gesamte Liste bearbeiten, auch wenn Sie nur an der vollständigen Kursliste eines Lehrers interessiert sind.
Tags und Links java java-8 lambda java-stream