Я не могу подтвердить это в документации, но если у меня есть LinkedHashMap и я вызываю keySet() на нем, и итерация по этому набору гарантирована для итерации в порядке ввода?LinkedHashMap итерации по клавишам
ответ
Да. Посмотреть документы (которые вы не можете видеть) здесь: http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashMap.html
Хеш таблица и реализация связанного списка интерфейса Map, с предсказуемого порядка итерации. Эта реализация отличается от HashMap тем, что она поддерживает список с двойной связью, проходящий через все его записи . Этот связанный список определяет порядок итераций, который равен , как правило, порядок, в котором ключи были вставлены в карту (вставка-заказ). Обратите внимание, что порядок вставки не изменяется, если ключ снова вставлен в карту. (Ключ к повторной установки на карте м, если m.put (к, v) вызывается при m.containsKey (к) возвращает истинное непосредственно перед вызовом.)
Это указано в Map
документация:
интерфейс
Map
предоставляет три вида сбора, которые позволяют содержание карты, чтобы можно рассматривать как набор ключей, набор значений, или набор отображений значения ключа. Порядок карты определяется как порядок, в котором итераторы на представлениях коллекции карты возвращают свои элементы. Некоторые реализации карт, такие как классTreeMap
, дают конкретные гарантии относительно их заказа; другие, как и класс HashMap, нет.
Это означает, что для LinkedHashMap
, все 3 метода - values()
, keySet()
и entrySet()
, каждый из них, обеспечивая 3 различные точки зрения сбора, гарантированно итерацию в порядке вставки.
- 1. Исключение при попытке итерации LinkedHashMap
- 2. KeyError: 0 во время итерации по клавишам словаря в словаре
- 3. почему linkedhashmap поддерживает двусвязный список для итерации
- 4. Перемещение по клавишам словаря
- 5. сортировка по клавишам группы по
- 6. LinkedHashMap сортировать по ключам
- 7. Knockout.js: Сортировать по нескольким клавишам
- 8. Слияние разных карт по клавишам
- 9. Lookup записей по нескольким клавишам
- 10. Фильтр по агрегированным клавишам ковша?
- 11. clojurescript итерация по клавишам объекта
- 12. C# Hashtable, отсортированный по клавишам
- 13. Слияние 2 массивов по клавишам
- 14. `tabulate` упорядочить столбцы по клавишам
- 15. Объединить несколько массивов по клавишам
- 16. Искриться по RDD сгруппированных по клавишам
- 17. Как отсортировать hashmap по значению, а не по клавишам
- 18. Итерирование по набору ключей LinkedHashMap
- 19. сортировать по убыванию LinkedHashMap по значению
- 20. Реализация параллельного LinkedHashMap
- 21. Как преобразовать Java LinkedHashMap в Scala LinkedHashMap?
- 22. Couchbase: поиск по нескольким строковым клавишам
- 23. Совокупные наборы по клавишам с defaultdict питона
- 24. Как получить обновление, выбрав текст по клавишам
- 25. Сортировка множественным по клавишам первого массива
- 26. Многомерный массив сортировки по нескольким клавишам
- 27. AngularJS - как это сделать по объектным клавишам?
- 28. Итерация по клавишам объектов в Javascript
- 29. Сортировка баллов по клавишам с помощью полки
- 30. PHP: объединение значений вложенных подмассивов по клавишам
Да, это гарантировано – Ilya