Сохраняет ли HashMap порядок своих элементов при следующем чтении, если он создан и «заполнен» как LinkedHashMap? - PullRequest
2 голосов
/ 14 апреля 2010

Предположим, у меня есть метод Java, который возвращает объект HashMap.

Поскольку LinkedHashMap является подклассом HashMap, я могу вернуть LinkedHashMap из этого метода просто отлично.

При следующем действии «чтение» (без добавления / удаления / изменения пар K / V) итерации по ключам результирующего метода (который возвращает HashMap) будут идти в том же порядке, что и исходный LinkedHashMap, даже хотя в HashMap отсутствуют ключевые ссылки?

1 Ответ

10 голосов
/ 14 апреля 2010

Да. Фактический экземпляр объекта все еще является возвращенным LinkedHashMap, поэтому он будет иметь свой порядок итерации.

Однако, Я бы ни от чего не зависел. Почему вы используете HashMap s, если важен порядок итераций? Это может быть запах кода.

...