Как сохранить порядок вставки в HashMap? [Дубликат]

This question already has an answer here:

Java Class that implements Map and keeps insertion order? 8 answers

Я используюHashMap, Когда я перебираю карту, данные возвращаются в (часто одинаковом) случайном порядке. Но данные были вставлены в определенном порядке, и мне нужно сохранить порядок вставки. Как я могу это сделать?

Ответы на вопрос(2)

HashMap неупорядочен по второй строке документации:

This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.

Возможно, вы можете сделать, как предлагает AIX, и использоватьLinkedHashMapили другой заказанный сборник.Эта ссылка может помочь вам найти наиболее подходящую коллекцию для использования.

Решение Вопроса

LinkedHashMap это именно то, что вы ищете.

Это в точности какHashMapза исключением того, что когда вы перебираете его, он представляет элементы в порядке вставки.

 20 нояб. 2015 г., 15:35
конструкторы дают «порядок вставки»; Карта, но конструктор (int, float, boolean), если третий аргумент имеет значение true, позволяет создать & quot; порядок доступа & quot; LinkedHashMap в этом случае вызов get будет влиять на порядок, к которому сначала обращаются меньше всего
 11 июл. 2016 г., 16:09
Это делает использованиеjava.util.Comparator<T> сjava.util.Collections.sort() явно не нужно и спасибо за предоставление очень полезной информации.
 23 февр. 2014 г., 13:53
в соответствии с Java-документа он говорит: Этот связанный список определяет порядок итераций, который обычно является порядком, в котором ключи были вставлены в карту. & # xBF; & # xBF; & # xBF; & # xBF; & # xBF; ОБЫЧНО ????? что это значит? вставка заказа не является гарантией ....
 23 февр. 2014 г., 13:58
@Xenione: Вы можете выбирать между порядком вставки и порядком доступа. Смотрите последний аргументbit.ly/1jZXlCl
 20 нояб. 2015 г., 15:18
@Xenione [Обратите внимание, что порядок вставки не изменяется, если ключ повторно вставлен в карту], когда ключ вставляется дважды, второй раз не меняет порядок, поэтому порядок повторения не совсем соответствует порядку вставки из-за уникальности ключи; обычно означает, что если ключи уникальны

Ваш ответ на вопрос