Java, которая имеет пару ключ/значение и упорядочена в соответствии с порядком вставки
Я хочу что-то, где я могу вставить пары ключ/значение, и порядок - это порядок, в который я вставляю элементы.
Я видел несколько сообщений о карте, но мне кажется, что я должен написать свой собственный компаратор для них.
Я хочу, чтобы первый элемент, который я вставлял, был первым сохраненным, а второй - вторым элементом в коллекции и т.д.
Ответы
Ответ 1
Попробуйте использовать LinkedHashMap
, из javadocs:
Таблица хэш-таблицы и связанный список интерфейса карты с предсказуемым порядком итерации Эта реализация отличается от HashMap тем, что она поддерживает список с двойной связью, проходящий через все его записи. Этот связанный список определяет порядок итераций, который обычно является порядком, в котором ключи были вставлены в карту (порядок вставки).
Ответ 2
Почему бы просто не создать class
, чтобы содержать ключ и значение, а затем сохранить их в вашей любимой реализации List
?
class Pair {
Key k;
Value v;
}
List<Pair> stuff = new ArrayList<Pair>();
Pair p = new Pair();
...
stuff.add(p);
Ответ 3
Похоже, вам нужно будет использовать список с объектом name/value
List<NameValuePair> values = new Arraylist<NameValuePair>();
а затем используйте список, как обычный список
class NameValuePair {
private name;
private value;
... get/set
}
Ответ 4
LinkedHashMap - это нужный тип данных, который вы ищете!
Поскольку он расширяет HashMap (который позволяет вам иметь элемент в паре ключей/значений) и поддерживает связанный список (который дает вам порядок вставки) записей.
Также ознакомьтесь со следующими типами карт для получения дополнительной информации:
https://docs.oracle.com/javase/8/docs/api/
Перейдите в AbstractMap и проверьте их
HashMap и TreeMap
HashTable- http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html