# Key und Value aus hashMap speichern



## d1rtysouth (21. Mai 2010)

Moin Leute,

folgende kurze Frage...
ich habe diesen Quellcode:

```
Collection c = statistik_abc.entrySet();
Iterator itr = c.iterator();

while(itr.hasNext())
  text += "\nKey und Value:" + itr.next();
}
```

Ich hab jetzt schon gegoogelt und verschiedene Lösungsansätze versucht aber es will nicht so recht klappen.
Ich möchte den Key und die Value in einer eigenen Variable speichern.
Wie mach ich das?
so nach dem motto:

```
String key="";
int value=0;

Collection c = statistik_abc.entrySet();
Iterator itr = c.iterator();

while(itr.hasNext())
  key = itr.nextKey();
  value = itr.nextValue();
  text += "\nKey und Value:" + itr.next();
}
```

mit besten grüßen
d1rtysouth


----------



## faetzminator (21. Mai 2010)

Du kannst die Keys per [c]keySet()[/c] an Stelle von [c]entrySet()[/c] holen. Danach kannst du die Value mit [c]get(K key)[/c] holen.

Edit: 
Ein Beispiel sieht etwa so aus:

```
Map<String, String> map = new HashMap<String, String>();
for (String key : map.keySet()) {
    System.out.println(key + " - " + map.get(key));
}
```


----------



## Der Müde Joe (21. Mai 2010)

Na wenn da FindBugs nicht meckert :bae: (von wegen keySet und get(key)


----------



## faetzminator (21. Mai 2010)

Bla bla :bae: wie würdest du es machen?


----------



## eRaaaa (21. Mai 2010)

Also wenn ich wirklich beides brauche, würde ich mir direkt das entrySet holen:

```
Map<String, String> map = new HashMap<String, String>();
		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println(entry); // bzw hier geht dann auch entry.getKey() und entry.getValue()
		}
```

@d1rtysouth, egal wie du es jetzt entgültig machst, auf jedenfall den String besser nicht mit += verketten, sondern benutze einen StringBuilder()


----------



## Der Müde Joe (21. Mai 2010)

genau:


----------



## faetzminator (21. Mai 2010)

Danke, wusste ich nicht *pfui*
Aber eigentlich sollte zumindest die *Hash*Map für [c]get(K)[/c] eine Laufzeit von [c]O(1)[/c]  haben!?


----------



## maki (21. Mai 2010)

faetzminator hat gesagt.:


> Danke, wusste ich nicht *pfui*
> Aber eigentlich sollte zumindest die *Hash*Map für [c]get(K)[/c] eine Laufzeit von [c]O(1)[/c]  haben!?


Der Lookup selber ist aber Überflüssig, wenn man sowohl den Key als auch die den Value auf einmal hat


----------

