HashMap durchlaufen und auslesen

Allgemein

In einer HashMap werden Daten nach dem Key-Value-Prinzip abgelegt. Die Keys sind eindeutig, d.h. jeder Key (Schlüssel) kommt nur einmal vor. Werden Elemente unter dem selben Key abgespeichert, so wird der bereits vorhandene Value überschrieben. Alle Werte werden unsortiert in der HashMap abgelegt, d.h. was zuerst reingelegt wird muss bei der Ausgabe nicht unbedingt auch zuerst wieder rauskommen. Das folgende Code-Beispiel stellt die Verhaltensweisen anschaulich dar:

Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.HashMap;
 
public class TestMain
{
  public static void main(String[] argv)
  {
    HashMap<String, String> map = new HashMap<String, String>();
 
    map.put("Vorname", "Lara");
    map.put("Vorname", "Ralf");
    map.put("Vorname", "Johanna");
    map.put("Vorname", "Benny");
    map.put("Nachname", "Neugebauer");
    map.put("Geburtsort", "Potsdam");
    map.put("Telefon", "123456");
 
    for(String key : map.keySet())
    {
      System.out.print("Key: " + key + " - ");
      System.out.print("Value: " + map.get(key) + "\n");
    }
  }
}

Ausgabe:

1
2
3
4
Key: Nachname - Value: Neugebauer
Key: Geburtsort - Value: Potsdam
Key: Telefon - Value: 123456
Key: Vorname - Value: Benny

Anwendungsfall

Das Servlet-Beispiel wird im nachfolgendem Code um eine HashMap erweitert. In der HashMap hmpParameter werden dann alle über einen HTTP-Request abgesendeten Parameter (mit den dazugehörigen Werten) gespeichert. Vor jedem Request wird die HashMap mit clear() geleert, damit nur die Parameter vom aktuellen Request enthalten sind. Ein Nachteil der HashMap ist, dass die Werte unsortiert gespeichert werden. Auslesen kann man eine HashMap mit foreach-Schleife (siehe Code).

Hinweis: Wenn man zu viele Werte in einer HashMap hinzufügt, dann kann es zu Kollisionen kommen. Daher sollte man bei der Deklaration auf die maximale Kapazität und den loadFactor achten.

Beispiel für eine HashMap mit load-Konstruktor:
HashMap hmpParameter = new HashMap(40, 0.3f);

Beispiel-Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
	[...]
	import java.util.HashMap;
	[...]
	HashMap<string, String> hmpParameter = new HashMap<string, String>();
	[...]
 
        if(parameters.hasMoreElements() == false)
        {
            out.println("Keine Parameter &uuml;bergeben.");
        }
        else
        {
            if( !hmpParameter.isEmpty() )
                hmpParameter.clear();
            while(parameters.hasMoreElements())
            {
                strParameter    = parameters.nextElement().toString();
                strValue        = request.getParameter(strParameter);
                hmpParameter.put(strParameter,strValue);
            }
            for(String strAusgabe : hmpParameter.keySet())
            {
                out.println(strAusgabe);
                out.println(hmpParameter.get(strAusgabe));
                out.println("<br/>");
            }
        }
	[...]

Ein Gedanke zu „HashMap durchlaufen und auslesen“

  1. Danke, hat mir sehr geholfen.
    Hatte nach einem Code-Schnipsel gesucht um die HashMap zu durchlaufen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.