Hallo alle zusammen,
gibt es eine logische Erklärung, warum Daten in einer HashMap kunterbund durcheinander geworfen werden?
Nachfolgend ein kleines Beispiel-Script, dass die ganze Sache verdeutlicht:
Die passende Ausgabe dazu:
Mein Ziel ist es, die Daten in der gleichen Reihenfolge wieder auslesen zu können, wie sie eingefügt wurden.
Hat jemand von euch eine Idee, wie ich das bewerkstelligen könnte?
gibt es eine logische Erklärung, warum Daten in einer HashMap kunterbund durcheinander geworfen werden?
Nachfolgend ein kleines Beispiel-Script, dass die ganze Sache verdeutlicht:
Code:
import java.util.HashMap;
import java.util.Iterator;
public class HashMapTester {
private HashMap hm = new HashMap();
public static void main(String[] args) {
new HashMapTester();
}
public HashMapTester()
{
this.add(4016, 1, new HashMap());
this.add(4016, 3, new HashMap());
this.add(4016, 5, new HashMap());
this.add(4016, 8, new HashMap());
this.add(4016, 10, new HashMap());
this.add(4016, 13, new HashMap());
this.add(4016, 16, new HashMap());
this.add(4016, 19, new HashMap());
this.add(4016, 20, new HashMap());
this.add(4016, 23, new HashMap());
}
private void add(int mapping, int id, HashMap data)
{
HashMap dataArray = null;
if(this.hm.containsKey(String.valueOf(mapping)))
{
dataArray = (HashMap) this.hm.get(String.valueOf(mapping));
this.hm.remove(String.valueOf(mapping));
}
else
{
dataArray = new HashMap();
}
dataArray.put(String.valueOf(id), data);
this.hm.put(String.valueOf(mapping), dataArray);
System.out.println("|-> insert nr. " + id + " (mapping id: " + mapping + ")");
System.out.println("| |-> result after insert:");
Iterator i = dataArray.keySet().iterator();
while(i.hasNext())
{
System.out.println("| | |-> " + i.next());
}
System.out.println("|----|----|------------------");
}
}
Die passende Ausgabe dazu:
|-> insert nr. 1 (mapping id: 4016)
| |-> result after insert:
| | |-> 1
|----|----|------------------
|-> insert nr. 3 (mapping id: 4016)
| |-> result after insert:
| | |-> 3
| | |-> 1
|----|----|------------------
|-> insert nr. 5 (mapping id: 4016)
| |-> result after insert:
| | |-> 3
| | |-> 5
| | |-> 1
|----|----|------------------
|-> insert nr. 8 (mapping id: 4016)
| |-> result after insert:
| | |-> 3
| | |-> 5
| | |-> 8
| | |-> 1
|----|----|------------------
|-> insert nr. 10 (mapping id: 4016)
| |-> result after insert:
| | |-> 10
| | |-> 3
| | |-> 5
| | |-> 8
| | |-> 1
|----|----|------------------
|-> insert nr. 13 (mapping id: 4016)
| |-> result after insert:
| | |-> 10
| | |-> 3
| | |-> 5
| | |-> 13
| | |-> 8
| | |-> 1
|----|----|------------------
|-> insert nr. 16 (mapping id: 4016)
| |-> result after insert:
| | |-> 10
| | |-> 3
| | |-> 5
| | |-> 16
| | |-> 13
| | |-> 8
| | |-> 1
|----|----|------------------
|-> insert nr. 19 (mapping id: 4016)
| |-> result after insert:
| | |-> 10
| | |-> 3
| | |-> 5
| | |-> 16
| | |-> 13
| | |-> 19
| | |-> 8
| | |-> 1
|----|----|------------------
|-> insert nr. 20 (mapping id: 4016)
| |-> result after insert:
| | |-> 10
| | |-> 3
| | |-> 5
| | |-> 16
| | |-> 13
| | |-> 20
| | |-> 19
| | |-> 8
| | |-> 1
|----|----|------------------
|-> insert nr. 23 (mapping id: 4016)
| |-> result after insert:
| | |-> 10
| | |-> 3
| | |-> 5
| | |-> 16
| | |-> 13
| | |-> 20
| | |-> 23
| | |-> 19
| | |-> 8
| | |-> 1
|----|----|------------------
Mein Ziel ist es, die Daten in der gleichen Reihenfolge wieder auslesen zu können, wie sie eingefügt wurden.
Hat jemand von euch eine Idee, wie ich das bewerkstelligen könnte?