Я хочу найти что-то вроде ImmutableLinkedHashMap<>
в библиотеке Guava.
Мне нужно использовать неизменяемую структуру данных ключевого значения с порядком вставки.
Итак, что я должен использовать?
Мне нужна неизменная структура ключевого значения, которая сохраняет порядок вставки
Ответ 1
Я не уверен, что понимаю, что вы после, но если это действительно неизменный Map
, вы можете посмотреть ImmutableMap
Как упоминалось в документе:
Неизменяемый хэш-код
Map
с надежным заданием итерации, заданным пользователем. Не разрешает нулевые ключи или значения.В отличие от
Collections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
, который является видом отдельной карты, которая все еще может измениться, экземплярImmutableMap
содержит свои собственные данные и никогда не изменится.ImmutableMap
удобно для картpublic static final
( "постоянные карты" ), а также позволяет легко сделать "защитную копию" карты, предоставленной вашему классу вызывающим абонентом
Например, вы можете использовать его аналогичным образом:
Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");
Надеюсь, это то, чем вы были.
Ответ 2
Сначала создайте LinkedHashMap
, а затем используйте ImmutableMap.copyOf(linkedHashMap)
, чтобы создать неизменяемую копию, которая будет иметь тот же порядок, что и исходная карта.