Ist die Java HashMap keySet () Iterationsreihenfolge konsistent?

Verstehe ich, dass der Satz wieder von einer Karte keySet () - Methode garantiert in keiner bestimmten Reihenfolge.

Meine Frage ist, garantiert Sie die gleichen, um über mehrere Iterationen. Zum Beispiel

Map<K,V> map = getMap();

for( K k : map.keySet() )
{
}

...

for( K k : map.keySet() )
{
}

In dem obigen code, vorausgesetzt, dass die Karte nicht verändert, wird die iteration über die keySets werden in der gleichen Reihenfolge. Mit Sonne jdk15 es hat Durchlaufen in der gleichen Reihenfolge, aber bevor ich bin angewiesen auf dieses Verhalten, ich würde gerne wissen, ob alle JDKs wird das gleiche tun.

BEARBEITEN

Ich sehe aus den Antworten, dass ich nicht von ihm abhängen. Schade. Ich hatte gehofft, zu bekommen Weg mit nicht mit, um aufzubauen, einige neue Kollektion garantieren meine Bestellung. Mein code, der benötigt wird, um Durchlaufen, tun eine gewisse Logik, und Durchsuche dann wieder mit der gleichen Anordnung. Ich werde einfach erstellen Sie eine neue ArrayList vom keySet die Garantie um.

Kommentar zu dem Problem
Kontrollieren Sie die Map-Implementierung zurückgegeben wird, von getMap () - Methode? Kommentarautor: Andrey Adamovich
Sie sicherlich kann Holen Sie sich konsistente Bestellung ohne die Erstellung Ihrer eigenen Kollektion. Sehen SortedMap wie andere erwähnt haben. Also, wenn Ihr getMap () - Methode gibt SortedMap statt, die der Anrufer wissen, zu erwarten, dass konsequent bestellen. Kommentarautor: PSpeed

InformationsquelleAutor der Frage karoberts | 2009-12-10

Schreibe einen Kommentar