Schabby's Blog
computer science and binary watches, there isnt probably much more that matters in the known part of the universe
Sep
26.

In diesem Post widme ich mich kurz der HashMap und ihren Eigenschaften. Folgende Fragegestellungen werden angesprochen:

      HashMap in Java
      HashMap Beispiel
      Unterschied HashMap zu Hashtable
      Assoziatives Array in Java


Eine HashMap dient zum speichern von Key-Value (Schlüssel-Wert) Paaren. Das heisst man gibt einen Schlüssel an und kann zu diesem Schlüssel einen Wert abspeichern und zu genau diesem Schlüssel auch den Wert wieder aus der HashMap herausholen. Ein Schlüssel kann ein beliebiges Objekt sein und ist meist eine Object Id, Speicheradresse oder ein String. Wichtig ist jedoch, dass ein Schlüssel eindeutig ist, sodass niemals ein Schlüssel für zwei Werte exisitiert.

Technisch funktioniert die HashMap so, dass aus dem Schlüssel ein Hash-Wert berechnet wird der als Adresse in einer Tabelle dient wo der Wert abgespeichert wird. Das berechnen eines solchen Hashs ist nicht immer leicht, aber Java bietet standardmäßig ein recht solides Verfahren für die meisten primitiven Datentypen (die Methode hash() in Object dient genau dazu und wird in String etc. überschrieben). Eine gute Einführung in Hashwerte kann auf der Wikipedia nachgelesen werden.

Im folgenden wird ein kurzes Beispiel eine HashMap gezeigt:

import java.util.*;
 
public class HashMapDemo {
 
  public static void main(String[] args) {
 
    HashMap<String, Double> hm = new HashMap<String, Double>();
    hm.put("Rohit", new Double(3434.34));
    hm.put("Mohit", new Double(123.22));
    hm.put("Ashish", new Double(1200.34));
    hm.put("Khariwal", new Double(99.34));
    hm.put("Pankaj", new Double(-19.34));
 
    for( String name: hm.keySet() )
    {
       System.out.println(name + ": "+ hm.get(name));    
    }
 
    // Rohit's um 1000 erhoehen
    double balance = ((Double)hm.get("Rohit")).doubleValue();
    hm.put("Rohit", new Double(balance + 1000));
 
    System.out.println("Rohits neuer Kontostand : " + hm.get("Rohit"));
  }
}

Die Ausgabe ist wie folgt:

Rohit : 3434.34
Ashish : 1200.34
Pankaj : -19.34
Mohit : 123.22
Khariwal : 99.34
Rohit new balance : 4434.34

Der Unteschied zwischen einer HashMap und einer Hashtable ist marginal. Beide bieten die selbe Funktionalität. Der Unterschied ist lediglich, dass Hashtables synchronized sind und daher unter Umständen etwas langsamer sind als HashMaps.


Post Comment

Please notice: Comments are moderated by an Admin.


Blogverzeichnis Blog Verzeichnis Blogverzeichnis - Blog Verzeichnis bloggerei.de Blog Top Liste - by TopBlogs.de Bookmark and Share