Hi!
Ich habe vergeblich nach einer Funktion der Klasse Map gesucht, die eine Map.Entry mit einem speziellen Index ausgibt.
Deshalb wollte ich mir selbst eine programmieren:
Wenn ich jetzt sowas mache:
müsste ja eigentlich "B" ausgegeben werden. Das ist aber nur manchmal der Fall. Insgesamt ist hier etwas sehr merkwürdig, wenn ich z.B. aus put("A") put("AA") mache, dann ändert das etwas an der Ausgabe
.
Was zum Teufel habe ich falsch gemacht?
Ich habe vergeblich nach einer Funktion der Klasse Map gesucht, die eine Map.Entry mit einem speziellen Index ausgibt.
Deshalb wollte ich mir selbst eine programmieren:
Code:
public static <K, V> Map.Entry <K, V> getMapEntry(Map <K, V> map, int index)
{
Set <Map.Entry <K, V>> entrySet = map.entrySet();
Iterator <Map.Entry <K, V>> it = entrySet.iterator();
for (int i = 0; i < index; i++)
{
it.next();
}
return it.next();
}
Wenn ich jetzt sowas mache:
Code:
Map <String, Integer> hm = new HashMap <String, Integer>();
hm.put("A", 2);
hm.put("B", 0);
hm.put("C", 3);
hm.put("D", 5);
String second = ContainerFunc.getMapEntry(hm, 1).getKey();
System.out.println(second);
müsste ja eigentlich "B" ausgegeben werden. Das ist aber nur manchmal der Fall. Insgesamt ist hier etwas sehr merkwürdig, wenn ich z.B. aus put("A") put("AA") mache, dann ändert das etwas an der Ausgabe
Was zum Teufel habe ich falsch gemacht?