我想ImmutableLinkedHashMap<>
在 Guava 库中找到类似的东西。我需要使用带有插入顺序的不可变键值数据结构。那么,我应该使用什么?
问问题
12711 次
2 回答
32
我不确定我是否完全理解你所追求的,但如果它真的是不可变的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");
希望这就是你所追求的。
于 2013-02-20T15:00:03.773 回答
10
首先创建一个LinkedHashMap
,然后使用ImmutableMap.copyOf(linkedHashMap)
创建一个不可变副本,该副本将与原始地图具有相同的顺序。
于 2013-02-20T15:00:28.110 回答