Подтвердить что ты не робот

Мне нужна неизменная структура ключевого значения, которая сохраняет порядок вставки

Я хочу найти что-то вроде ImmutableLinkedHashMap<> в библиотеке Guava. Мне нужно использовать неизменяемую структуру данных ключевого значения с порядком вставки. Итак, что я должен использовать?

4b9b3361

Ответ 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), чтобы создать неизменяемую копию, которая будет иметь тот же порядок, что и исходная карта.