# Alle Daten einer HashMap ausgeben



## reinpecht (3. Nov 2010)

Hey leute ich bins mal wieder 

Ich hätte eine Frage ich habe eine Hashmap die als Key einen String hat und einen Int für die Häufigkeit des Keys.
Und ich möchte jetzt den jeweiligen INhalt ausgeben, also es soll dann alles ausgegeben werden:
Key : Häufigkeit;
aber ich weiss nicht wie ich in einer Schleife alle ausgeben kann da ich ja Strings als Keys habe ... wie mache ich das am besten ?

wenn ich mich jetzt vllt nicht verständlich genug ausgedrückt habe dann bitte sagen 

mfg


----------



## Gast2 (3. Nov 2010)

map.keySet() liefert dir alle Keys.
Alternativ kannst du map.entrySet() nutzen. Da bekommste direkt alle key-value paare.


----------



## reinpecht (3. Nov 2010)

und was mach ich dann mit allen keys ??
ich kann die ja nciht hinschreiben ich brauche ja auch den wert auf den die keys zeigen ...


----------



## SlaterB (3. Nov 2010)

```
public static String getStringOf(Map map)  {
        if (map == null)    {
            return "Map, null";
        }
        StringBuilder b = new StringBuilder("Map, Size: ");
        b.append(map.size());

        Set<Map.Entry> set = map.entrySet();
        for (Map.Entry entry : set)  {
            Object key = entry.getKey();
            Object value = entry.getValue();

            b.append("\n");
            b.append(key); // am besten den String auf feste Zeichenanzahl formatieren 
            b.append(" -> ");
            b.append(value);
        }
        return b.toString();
    }
```


----------



## Gast2 (3. Nov 2010)

> und was mach ich dann mit allen keys ??
> ich kann die ja nciht hinschreiben ich brauche ja auch den wert auf den die keys zeigen ...


map.get(key); ???:L


----------



## The_S (3. Nov 2010)

Über die kannst du dann mit bspw. einer for-each Schleife oder einem Iterator iterieren.


----------



## diel2001 (3. Nov 2010)

```
for(Map.Entry entry : map.entrySet()){
entry.getKey();
entry.getValue();
}
```

So bitte schön 

Oh ein wenig zu spät


----------



## reinpecht (3. Nov 2010)

SlaterB hat gesagt.:


> ```
> public static String getStringOf(Map map)  {
> if (map == null)    {
> return "Map, null";
> ...



danke für den Code is sicher nett gemeint aber für meine kenntnisse sicherlich zu hoch...
ich bin gerade erst eingestiegen und verstehe bei dem code nichts xD


----------



## reinpecht (3. Nov 2010)

diel2001 hat gesagt.:


> ```
> for(Map.Entry entry : map.entrySet()){
> entry.getKey();
> entry.getValue();
> ...



was bedeutet der Code ??
Was heißt entry usw. ich kann es ja nicht nur hinschreiben ich möchte ja auch verstehen was ich damit mache ...


----------



## Gast2 (3. Nov 2010)

Jeder Datensatz in deiner Map ist ein Entry, also key-value pair.
Mit dieser erweiterten forschleife läufst du durch alle entries deiner Map. Auf dem Entry kannst du dann getKey() und getValue() aufrufen um dir den key bzw. den value zu holen.

EDIT:
Ansonsten einfach mal in die API schauen.


----------



## XHelp (3. Nov 2010)

reinpecht hat gesagt.:


> was bedeutet der Code ??
> Was heißt entry usw. ich kann es ja nicht nur hinschreiben ich möchte ja auch verstehen was ich damit mache ...



The For-Each Loop


----------



## reinpecht (3. Nov 2010)

geht es nicht auch einfach zu schreiben 


```
System.out.println(map);
```


----------



## The_S (3. Nov 2010)

reinpecht hat gesagt.:


> was bedeutet der Code ??
> Was heißt entry usw. ich kann es ja nicht nur hinschreiben ich möchte ja auch verstehen was ich damit mache ...



Siehe SlaterB. Was verstehst du daran denn nicht?


----------



## The_S (3. Nov 2010)

reinpecht hat gesagt.:


> geht es nicht auch einfach zu schreiben
> 
> 
> ```
> ...



Wenn du wirklich nur eine formlose Darstellung der Inhalte auf der Konsole möchtest: Ja.


----------



## reinpecht (3. Nov 2010)

ich habe es jetzt einmal so probiert aber ich bin drauf gekommen das die Console von Eclipse eindeutig nicht groß genug ist, denn es werden nur vllt 100 Wörter ausgegeben von ca. 500000


----------



## XHelp (3. Nov 2010)

reinpecht hat gesagt.:


> ich habe es jetzt einmal so probiert aber ich bin drauf gekommen das die Console von Eclipse eindeutig nicht groß genug ist, denn es werden nur vllt 100 Wörter ausgegeben von ca. 500000



Weil vemutlich in den Einstellungen Anzahl der angezeigten Zeichen begrenzt ist, was du aber auch ändern kannst.


----------



## reinpecht (3. Nov 2010)

10000000 ist das maximum aber in meinem fall viel zu wenig ...


----------



## The_S (3. Nov 2010)

Window => Preferences => Run/Debug => Console => Limit console output (Haken raus)


----------

