Entry.Map

Status
Nicht offen für weitere Antworten.

sowieso

Aktives Mitglied
Hallo !

In der Klasse "Reader" hab ich eine Hashmap:

Code:
HashMap <String,Integer> map = new HashMap <String,Integer> ();

In der Klasse "Events" wird der Befehl zum auffüllen der map gegeben. Anschließend sollen der map einzeln Strings und Integers entnommen werden können:

Code:
Set <Map.Entry <String,Integer>> entrySet = reader.map.entrySet();
Iterator <Map.Entry <String,Integer>> it = entrySet.iterator();

for (int i = 0; it.hasNext(); i++)
{			
	gamerPanelLabel[i] = new JLabel(it.next().getKey());

....
}

Hier werden in der forschleife Strings entnommen, um sie auf ein Label zu kleben. In der Schleife soll aber eigentlich auch der dem String zugehörige Integer entnommen werden und in ein Textfeld gelesen werden.

Code:
gamerTextField[i] = new JTextField(it.next().getValue());

Das geht aber leider nicht so, weil hier ja noch mal it.next() ausgeführt wird. Also dachte ich mir, ich weise it.next() einmal einer Variable zu und kann dann von der sowohl Key als auch Value auslesen.

Die Variable müsste ja vom Typ Entry.Map sein (?!)

Code:
Entry.Map <String,Integer> Paar  = new Entry.Map <String,Integer> ();

Leider sagt der Compiler hier aber "Entry.Map" cannot be resolved to a type".Und tatsächlich gibts in der Klasse irgnendwie gar keinen Konstruktor (oder ?).

Kann mir jemand bei diesem Problem helfen ?? Wäre super !! :D
 

Marco13

Top Contributor
Map.Entry...
Code:
        for (int i = 0; it.hasNext(); i++)
        {         
            Map.Entry<String, Integer> entry = it.next();
            entry.getKey();
            entry.getValue();
            
            //gamerPanelLabel[i] = new JLabel(it.next().getKey());
        }
 

WeirdAl

Bekanntes Mitglied
Hi,
da ich gerade in einem Javabuch gerade ua im Source Code Map.Entry auftaucht, hänge ich mich mal hier dran. Aus welchem Grund benutzt man zB

Code:
Set <Map.Entry <String,Integer>> entrySet = reader.map.entrySet();

Liest Du hier deine Hashmap in ein Set vom Typ Map.Entry (um evtl eine HashSet daraus zu bauen)? Wieso packt man etwas in eine Map ums dann in ein Set(List) umzupacken?

Mich interessiert generell, ob man dies öfters nutzt, da mich die Schreibweise von Map.Entry<K,V> in Verbindung mit selbst gestrickten abstrahierten generischen Klassen schon etwas verwirrt :)

Cu
Alex
 

Marco13

Top Contributor
Naja - wenn man eine Map BRAUCHT, dann verwendet man eine Map. Wenn man dann aber mal (wie in diesem Beispiel) alle Einträge nacheinander durchgehen muss, KÖNNTE man entweder was machen wie
Code:
    Set keySet = map.getKeys();
    for (all keys in keySet)
    {
        Value value = map.getValue(key);
    }
oder man holt sich eine "Ansicht" des Inhaltes der Map, eben einen Set mit MapEntries. Es werden dort keine Daten "aus der Map in einen Set kopiert". Die Methode dient nur dem Zweck, "die Einträge der Map als einen Set betrachten zu können", z.B. eben um leicht drüberiterieren zu können.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben