Über Map laufen Erklärung

Overskill

Aktives Mitglied
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:

GC: Hashtable - java.util.Hashtable (.java) - GrepCode Class Source

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.

mfg Overskill
 

Network

Top Contributor
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.
 

Overskill

Aktives Mitglied
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.

mfg Overskill
 

Network

Top Contributor
Aber entrySet ist doch keine Methode :bahnhof: Das ist ein Objekt vom Typ Set.
Das kannst du gleich an mehreren Punkten sehen

1. Zeile 621
Code:
private transient volatile Set<Map.Entry<K,V>> entrySet = null;

2. In der Methode Zeile 680
Code:
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 :D
 

Overskill

Aktives Mitglied
Joa der Satz
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".
wars dann :D. Oh man und ich zerbrech mir den Kopf(facepalm) :p.

Danke dir, dann ist alles klar!

Grüße Overskill
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
U Best Practice Buttons sollen ÜBER Labeln liegen, also quasi im Vordergrund. WIE? Java Basics - Anfänger-Themen 4
AssELAss Über ein Objekt vom Typ BigDecimal iterieren Java Basics - Anfänger-Themen 6
L Über 100e Werte anzeigen Java GUI Java Basics - Anfänger-Themen 1
0 Über CMD die JAVA Datei ausführen? möglich? Java Basics - Anfänger-Themen 8
A Über Jahr iterieren, Freitag der 13. Java Basics - Anfänger-Themen 2
S Über Button Zeichnung ändern Java Basics - Anfänger-Themen 5
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
J Über ... Dialog (Mac OS) Java Basics - Anfänger-Themen 8
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
PINTOR Über IP verschicken Java Basics - Anfänger-Themen 3
D Über ein Interface methoden ansprechen Java Basics - Anfänger-Themen 9
C Über Boolean Static, String ausgeben Java Basics - Anfänger-Themen 3
S Über Bild zeichnen Java Basics - Anfänger-Themen 21
H Mac Menu-Über Programm anpassen Java Basics - Anfänger-Themen 3
K Datentypen Über Collection iterieren bringt fehler Java Basics - Anfänger-Themen 8
P Über HashMap iterieren -> NullPointerException Java Basics - Anfänger-Themen 2
J Array List - Über die Konsole eingeben Java Basics - Anfänger-Themen 1
A Struts: Über Collection iterieren mir Taglibs? Java Basics - Anfänger-Themen 13
G Über Button DB Tabelleninhalt löschen Java Basics - Anfänger-Themen 24
M Über einen Button etwas zeichnen lassen Java Basics - Anfänger-Themen 5
G Über undo, copy, cat, paste, delete Funktionen Java Basics - Anfänger-Themen 3
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
B Robot auf virtuellem Desktop laufen lassen? Java Basics - Anfänger-Themen 4
1 Threads parallel laufen Java Basics - Anfänger-Themen 11
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
N Erste Schritte HelloWorld möchte einfach nicht laufen Java Basics - Anfänger-Themen 11
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
V Wie lasse ich die for-Schleife so oft laufen wie per Scanner angegeben? Java Basics - Anfänger-Themen 3
B Threads 2 Threads gleichzeitig laufen lassen Java Basics - Anfänger-Themen 1
M Threads Threads laufen sequenziell, statt gleichzeitig. Java Basics - Anfänger-Themen 9
C LMC laufen kriegen, welches Java brauche ich ? Java Basics - Anfänger-Themen 5
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
M Methoden zwei methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 4
O Methoden 3 Methoden gleichzeitig laufen lassen in der Console Java Basics - Anfänger-Themen 2
P SystemTray: Programm sol im Hintergrund weiter laufen Java Basics - Anfänger-Themen 30
H Path2D zerlegen und Objekt drauf "laufen" lassen Java Basics - Anfänger-Themen 11
K Erste Schritte Stoppuhr will nicht laufen Java Basics - Anfänger-Themen 3
R Funktionen Synchron laufen lassen Java Basics - Anfänger-Themen 10
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
K Eine bestimmte Zeit, eine Schleife laufen lassen. Java Basics - Anfänger-Themen 4
M Bekomm altes Uni-Projekt in java nicht mehr zum laufen Java Basics - Anfänger-Themen 7
F Erste Schritte Unter Windows programmieren und dann auf Linux laufen lassen Java Basics - Anfänger-Themen 4
B Durch eine Liste von Strings laufen Java Basics - Anfänger-Themen 6
P Webservice erstellen und laufen lassen Java Basics - Anfänger-Themen 1
K Durch ArrayList laufen Java Basics - Anfänger-Themen 8
M Threads, zwei methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 4
F Eclipse und LWJGL - Bringe workspace nicht zum laufen Java Basics - Anfänger-Themen 2
S Simples JNI zum laufen bringen Java Basics - Anfänger-Themen 5
G Erste Schritte von Eclipse zur Anwendung: Programme auf anderen Rechnern zum Laufen bringen Java Basics - Anfänger-Themen 4
C Kugel laufen lassen Java Basics - Anfänger-Themen 25
C Vererbung Wie bekomm ich das Programm zum laufen? Java Basics - Anfänger-Themen 4
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
R java-programme schneller laufen lassen Java Basics - Anfänger-Themen 41
A Nedit für Mac zum laufen bringen Java Basics - Anfänger-Themen 2
C BlueJ zum Laufen bekommen Java Basics - Anfänger-Themen 14
A JBoss-Anwendung soll im Singleton-Mode laufen Java Basics - Anfänger-Themen 6
G Poi 3.5-Final zum laufen bringen Java Basics - Anfänger-Themen 2
M Online-Java-Games offline spielen? / Jar-Files zum laufen bringen? Java Basics - Anfänger-Themen 6
D Wie bringe ich dieses Programm als .jar zum laufen ? Java Basics - Anfänger-Themen 12
D In eclipse Methode von Schnittstelle zum Laufen bringen? Java Basics - Anfänger-Themen 14
M 2 Methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 2
brainray Einfachen RMI Server bei einem Provider zum Laufen bringen Java Basics - Anfänger-Themen 3
S Schleifen zeitversetzt laufen lassen Java Basics - Anfänger-Themen 3
S Java Programm extern laufen lassen Java Basics - Anfänger-Themen 10
J Threads asynchron laufen lassen Java Basics - Anfänger-Themen 4
T Mehr Anfänger geht nicht - Wie bekomme ich das zum laufen! Java Basics - Anfänger-Themen 6
G Threads prüfen, ob diese noch laufen. Java Basics - Anfänger-Themen 3
D 2x .jar Dateien laufen lassen Java Basics - Anfänger-Themen 2
D Java auf USB-Stick einrichten um FreeMind zum laufen zu bringen Java Basics - Anfänger-Themen 4
F Wie kann man Quellcodes uber die Konsole laufen lassen? Java Basics - Anfänger-Themen 6
E Vermeiden,dass mehrere Instanzen eines Java-Programms laufen Java Basics - Anfänger-Themen 2
T will nich als Applet laufen Java Basics - Anfänger-Themen 7
J Java Programm "IR-System" laufen Java Basics - Anfänger-Themen 2
J Rekursiv muss dass laufen! Java Basics - Anfänger-Themen 11
C Nach Catch-Klausel Programm weiter laufen lassen Java Basics - Anfänger-Themen 5
M Bekomme Programm nicht zum laufen HILFEEEE! Java Basics - Anfänger-Themen 28
M Timer als Thread laufen lassen? Java Basics - Anfänger-Themen 4
H KeyAdapter/KeyListener zum laufen kriegen Java Basics - Anfänger-Themen 3
jacquipre Eine Suchmethode im Hintergrund laufen lassen (Threads?) Java Basics - Anfänger-Themen 12
lan2711 Class Dateien auf anderen Rechner zum Laufen kriegen. Java Basics - Anfänger-Themen 5
L IOTools zum Laufen bringen Java Basics - Anfänger-Themen 2
B RetroGuard zum Laufen bringen Java Basics - Anfänger-Themen 11
C Applet will nicht laufen Java Basics - Anfänger-Themen 13
P meine java applets laufen nicht bei meinen freunden Java Basics - Anfänger-Themen 5
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 12
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
D Erklärung Java Basics - Anfänger-Themen 3
A Erklärung Programm zur Kreisberechnung Java Basics - Anfänger-Themen 43
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
D Erklärung eines Satzes Java Basics - Anfänger-Themen 0
M Erklärung: Int IndexOf (String s) Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben