czy kolejność iteracji Java HashMap keySet () jest spójna?
Rozumiem, że zestaw zwrócony z metody keySet () Map nie gwarantuje żadnej określonej kolejności.
Moje pytanie brzmi, czy to gwarantujepodobnie porządek w wielu iteracjach. Na przykład
Map<K,V> map = getMap();
for( K k : map.keySet() )
{
}
...
for( K k : map.keySet() )
{
}
W powyższym kodzie, zakładając, że mapa jestnie zmodyfikowany, czy iteracja nad zestawami kluczy będzie w tej samej kolejności. Używanie JDK15 w Sun.robi iteruj w tej samej kolejności, ale zanim zacznę polegać na tym zachowaniu, chciałbym wiedzieć, czy wszystkie JDK zrobią to samo.
EDYTOWAĆ
Z odpowiedzi widzę, że nie mogę na tym polegać. Szkoda. Miałem nadzieję, że nie będę musiał budować nowej kolekcji, aby zagwarantować moje zamówienie. Mój kod musiał się iterować, robić logikę, a następnie przeglądać ponownie z tym samym zamówieniem. Po prostu utworzę nową ArrayList z zestawu kluczy, który zagwarantuje zamówienie.