Guten Tag Zusammen,
Ist etwas länger geworden, darum habe ich mal aufgeteilt. Meine Frage steht ganz unten unter [ZIEL], wer meine Beweggründe nachvollziehen will darf weiter lesen
[Hintergrund]
Ich habe eine HashMap (TreeMap, HashTable...eigentlich egal was ich da nehme). Diese HashTable beinhaltet als Key einen "String", als Value ein Objekt. Nun würde ich gerne eine sortierte Ausgabe der Objekte durchführen, ! anhand eines Objekt-Attributs !
[Versuch]
Ich bin davon ausgegangen, das eine TreeMap nach Keys sortiert. Eine HashMap nicht. Leider musste ich feststellen das dem nicht so ist, kleines mini Beispiel
liefert mir (leider) ein System.Out das nach keys sortiert ist, und nicht, wie ich erwartet hatte, genau in der Reihenfolge wie die EIngabe erfolgt ist
.
Ich hatte nämlich vor die (nach meinem Wissenstand) unsortierte HashMap durchzugehen, den Key und den zu sortierenden Wert in eine (sortierte?) TreeMap zu schreiben, und das ganze dann wieder in eine HashMap des alten Formates zurück zu führen, etwas so:
HashMap<String,Objekt>
>> TreeMap <Long,String> (Long ist ein Wert aus dem Objekt zur sortierung, der String der Key aus der vorranggehenden HashMap
>> HashMap<String,Objekt> (mit der Reihenfolge die die Treemap vorgibt)
aber die HashMap scheint bei meinem kleinen Beispielprogramm auch zu sortieren, was sie eben nicht soll, da ich den Inhalt ja im Grunde schon "selber" sortiert habe.
**********
[ZIEL]
Kurz und knapp:
Ich will eine HashMap, die NICHT nach key-Werten sortiert!
**********
grüße
D
Ist etwas länger geworden, darum habe ich mal aufgeteilt. Meine Frage steht ganz unten unter [ZIEL], wer meine Beweggründe nachvollziehen will darf weiter lesen

[Hintergrund]
Ich habe eine HashMap (TreeMap, HashTable...eigentlich egal was ich da nehme). Diese HashTable beinhaltet als Key einen "String", als Value ein Objekt. Nun würde ich gerne eine sortierte Ausgabe der Objekte durchführen, ! anhand eines Objekt-Attributs !
[Versuch]
Ich bin davon ausgegangen, das eine TreeMap nach Keys sortiert. Eine HashMap nicht. Leider musste ich feststellen das dem nicht so ist, kleines mini Beispiel
Code:
HashMap<String, Integer> unsortedHashMap=new HashMap<String, Integer>();
unsortedHashMap.put("2:2:2", new Integer(100));
unsortedHashMap.put("4:4:4",new Integer(500));
unsortedHashMap.put("1:1:1",new Integer(100));
unsortedHashMap.put("3:3:3",new Integer(1000));
System.out.println("UNSORTED");
for(String key:unsortedHashMap.keySet()) {
//System.out.println(key + " --Eisen-- " + unsortedHashMap.get(key).getEisen());
System.out.println(key) ;
}
liefert mir (leider) ein System.Out das nach keys sortiert ist, und nicht, wie ich erwartet hatte, genau in der Reihenfolge wie die EIngabe erfolgt ist

Ich hatte nämlich vor die (nach meinem Wissenstand) unsortierte HashMap durchzugehen, den Key und den zu sortierenden Wert in eine (sortierte?) TreeMap zu schreiben, und das ganze dann wieder in eine HashMap des alten Formates zurück zu führen, etwas so:
HashMap<String,Objekt>
>> TreeMap <Long,String> (Long ist ein Wert aus dem Objekt zur sortierung, der String der Key aus der vorranggehenden HashMap
>> HashMap<String,Objekt> (mit der Reihenfolge die die Treemap vorgibt)
aber die HashMap scheint bei meinem kleinen Beispielprogramm auch zu sortieren, was sie eben nicht soll, da ich den Inhalt ja im Grunde schon "selber" sortiert habe.
**********
[ZIEL]
Kurz und knapp:
Ich will eine HashMap, die NICHT nach key-Werten sortiert!
**********
grüße
D
Zuletzt bearbeitet: