Optional
Der Code, den du geschickt hast, macht folgendes:
Du hast eine Map namens "seatAssignment". Diese speichert einen String "seat" und das dazugehörige Person Objekt.
In der ersten Methode "getPersonAtSeat" nimmst du als Parameter den "seat" als String und schaust in der Map nach dem Key, welcher diesem "seat" zugeordnet ist. Der Key, also das Person-Objekt wird in ein Optional "gewrappt", da es sein könnte, dass es zu diesem "seat" noch kein Key gibt und man wie gesagt eine NullPointerException verhindern möchte. Ganz am Anfang wird noch eine Exception geworfen, falls die Eingabe nicht gültig ist.
In der anderen Methode "getSeatForPerson" nimmt man als Paramter das Person-Objekt und sucht in der Map nach dem jeweiligen Value, also dem zugehörigen "seat" String. Dazu geht man alle "Pairs" also Entrys der Map mit einer for-Schleife durch. Dafür gibt es in dem Interface Map eine Entry Klasse. Diese speichert immer ein Value und ein Key, die zusammen gehören. D. h. du kannst beim jedem Schleifendurchlauf schauen, ob der Entry.getKey() mit der Person übereinstimmt und dann den zugehörigen Entry.getValue() wieder in einem Optional "gewrappt" zurückgeben.
Nehmen wir zum Beispiel die folgende Map: {"1": Person1, "2": Person2, "3": Person3} ... dann gibt dir die Methode map.entrySet() folgendes Set zurück:
{ new Entry("1", Person1), new Entry("2", Person2), new Entry("3", Person3) }
... und darüber kannst du dann iterieren und auch auf die Values zugreifen, nicht nur auf die Keys der Map!
Schüler, Punkte: 455
Ja einfach for-each-Schleife für eine Map, im Endeffekt.
─ daniel.kuenkel 18.01.2021 um 14:15wie würde die for-each Schleife aussehen?
─ sayuri 18.01.2021 um 14:18... so wie in der 2. Methode in deinem Code
─ daniel.kuenkel 18.01.2021 um 14:21hahah ok !!!
─ sayuri 18.01.2021 um 14:26In welchem Modul macht ihr das eigentlich?
─ daniel.kuenkel 18.01.2021 um 14:28Programmierung 2
─ sayuri 18.01.2021 um 14:34
Markdown wird unterstützt.
Woww vielen Dank!! Map.entry bedeutet, dass die Key-Value Paare zusammengetan werden? Danach iteriert man über die Menge, damit man die passende Person mit dem dazugehörigen Sitz finden kann? Ist Map.Entry gleich eine forEach Schleife? Wie wird dies in der forEach Schleife geschrieben?
─ sayuri 18.01.2021 um 14:14