Вопрос про добавление элементов в Map
Всем привет! Делаю сериализатор/десериализатор для Json и возникла проблема с добавлением элементов в Map.
Конкретнее: Элементы добавляются не в том порядке в каком мне нужно, т.е. я добавляю id, а потом name и owner, но на выходе я получаю owner, name, id. Из-за чего такое происходит и как можно это решить? Код добавления элементов в Map ниже
public Map<String, Object> serialize() {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("name", name);
map.put("owner", owner);
System.out.println(map);
return map;
}
На выходе я получаю это {owner=LOVEC, name=Test, id=1}
Ответы (2 шт):
HashMap не сохраняет порядок элементов. Если нужно сохранять порядок используйте LinkedHashMap. Там значения хранятся в порядке вставки.
Ответ свыше ясен конечно, но рекомендую LinkedMap. Он немного другой двусвязный
LinkedHashMap is almost right, in that it keeps an iterable list, but it is unfortunately a linked list... retrieving the Nth element requires iterating from 1 to N.