我需要一个不可变的键值结构来保留插入顺序

2022-09-01 20:32:26

我想在番石榴图书馆找到类似的东西。我需要使用不可变的键值数据结构和插入顺序。那么,我应该使用什么呢?ImmutableLinkedHashMap<>


答案 1

我不确定我是否确切地理解了你所追求的是什么,但是如果它是一个真正不可变的,你想看看ImmutableMap。Map

如文档中所述:

基于哈希的不可变迭代,具有可靠的用户指定的迭代顺序。不允许空键或值。Map

与 不同,它是仍然可以更改的单独映射的视图,而 实例包含自己的数据,并且永远不会更改。 方便地图(“常量地图”),还可以让您轻松制作调用方提供给类的地图的“防御性副本”Collections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)ImmutableMapImmutableMappublic static final

例如,您可以以类似的方式使用它:

Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");

希望这就是你所追求的。


答案 2

首先创建一个,然后使用ImmutableMap.copyOf(linkedHashMap)创建一个不可变副本,该副本将具有与原始映射相同的顺序。LinkedHashMap