Hashtable mit int Schlüßel
-
hi
hat jemand ne idee wie ich eine Hashtabelle mit integer schlüßel realisieren kann ? das teil nimmt nur typ object.
alternativ würde mir auch reichen wenn es eine möglichkeit gibt alle elemente einer hashtable der reihe nach auszugeben(schleife: for eintrag 1- ende...), zb. über die position. sprich man brauch kein schlüßel mehr. ich weiss nur das ich über size die anzahl der einträge rausbekomme, aber nicht wie ich an den eintrag komme ohne schlüßel.
any idea ? thx.pain
-
das teil nimmt nur typ object.
Dann nimm halt "Integer", das ist ne Klasse die von Object abgeleitet ist.
-
Du kannst keine primitiven Datentypen als Key für eine Hashtable nutzen - wohl aber einen Wrapper-Typ wie z.B. Integer.
Mit der sequenziellen Ausgabe von Elementen einer Hashtable geht das wie folgt.
Erst holst du Dir via Methode elements() ein Enumeration-Objekt und dann kannst Du [java]for (Enumeration e = v.elements() ; e.hasMoreElements() {
System.out.println(e.nextElement());
}[/code] schreiben und an die Elemente rankommen.
-
Dafür nimmt man eine while-Schleife und keine for-Schleife.
-
Und warum? Gibts da eine Gesetzmäßigkeit?
-
cool Cegniz, is ja ganz einfach. funzt auch fast. irgendwie gibts da machmal probleme und ich hab kein plan warum, aber das krieg ich nu auch noch hin.
danke!pain
-
nur so, aber man kann sich die elemente der hashmap nicht geordnet ausgeben lassen, oder hab ich da was falsches gelesen?
wird doch nur n zufälliger "zugriff" auf die elemente bei der ausgabe gemacht
-
@Griffin: Wieso zufällig? Es wird mittels einer Hash-Methode ein Wert ausgerechnet (entspricht der Speicherzelle innerhalb der Map) und sofort das Objekt innerhalb der Speicherzelle zurückgegeben. Gesucht wird dabei nicht. Dass man keine geordnete Reihenfolge erhält stimmt allerdings - wäre aber auch gegen den Sinn einer Hashtable.
-
Original erstellt von CengizS:
Und warum? Gibts da eine Gesetzmäßigkeit?lies mal "while(e.hasMoreElements())"
aber ich finde die lokalheit des objekt e ist mir wichtiger(wenn in java die gleichen scope regelen gelten wie in c++98)