Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hey Leute ich kann ja z.B über meine Map laufen indem ich folgendes benutze:
Java:
for(Map.Entry<Integer, String> m :map.entrySet ) {
...
}
Aber wieso klappt das ganze? Auf der Linken Seite haben wir das Interface Map.Entry aber was liefert die Methode .entrySet zurück? Wenn ich mir den Code zur Methode auf folgender Seite anschaue:
sehe ich, dass überprüft wird, ob die Methode entrySet==null ist? Frage1: Wie soll das gehen?
Auch allgemein verstehe ich nicht wie das funktioniert. Also wie die richtigen Sachen zurück gegeben werden können. Würde mich freuen wenn es mir jemand erklärt.
Das nennt man Iterieren bzw. eine foreach-Schleife. Einfach mal mit den zwei Stichpunkten googlen.
Wie du an dem Code sehen kannst, überprüft die Methode nicht nur ob "entrySet == null" sondern liefert ein Set zurück über dass dann iteriert werden kann.
Der Code wird vom Compiler automatisch weiter interpretiert zu einer vollständigen Schleife die automatisch über alle Elemente des Sets iteriert.
Hey Network das ist mir klar wie eine foreach-Schleife funktioniert oder wie man iteriert.
Aber die Methode entrySet liefert ein Set mit <Map.Entry> zurück. Wie kann aber gefragt werden, ob die Methode entrySet ==null ist? Man kann doch keine Methoden auf null überprüfen? Einmal heißt die Methode entrySet und einmal ein Objekt. Bin da gerade etwas verwirrt.
Der Rest ist ja klar. "Wir erhalten alle Inhalte des Sets nacheinander in Map.Entry" und können dann über getKey() oder getValue() die Werte, Schlüssel auslesen.
if (entrySet==null)
entrySet = Collections.synchronizedSet(new EntrySet(), this);
3. Das er entrySet für eine Methode zurückgibt die ein Set<Map.Entry<K,V>> zurückgeben soll.
4. Das im Code steht
Code:
entrySet
und nicht
Code:
entrySet()
Es darf weder zwei Methoden mit dem selben Namen geben noch Variablen.
Aber Variablen dürfen den selben Namen haben wie eine Methode da ganz klar eine Methode immer so aussieht "entrySet()" und eine Variable so "entrySet".
Das du nicht gewusst hättest wie Iterieren/Foreach-Schleifen gehen war wahrscheinlicher
Aber Variablen dürfen den selben Namen haben wie eine Methode da ganz klar eine Methode immer so aussieht "entrySet()" und eine Variable so "entrySet".