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