我希望在Guava库中寻找类似于ImmutableLinkedHashMap<>
的东西。
我需要使用一个不可变的键值数据结构并且保持插入顺序。
那么,我应该使用什么?
我希望在Guava库中寻找类似于ImmutableLinkedHashMap<>
的东西。
我需要使用一个不可变的键值数据结构并且保持插入顺序。
那么,我应该使用什么?
我不确定我完全理解您的意思,但如果您需要一个真正不可变的 Map
,您可能需要查看ImmutableMap
。
如文档所述:
一个不可变的基于哈希的
Map
,它具有可靠的用户指定迭代顺序。不允许空键或值。与
Collections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
不同,后者是一个可以仍然更改的单独地图的视图,ImmutableMap
的实例包含其自己的数据并且永远不会更改。ImmutableMap
对于“常量映射”非常方便,并且还允许您轻松地对调用者提供的映射进行“防御性副本”。
例如,您可以以类似的方式使用它:
Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");
希望这就是你想要的。
ImmutableMap
看起来应该可以工作。 - 808soundImmutableSortedMap
扩展了ImmutableMap
,因此如果您有这种方法的客户端,则无法通过类型强制执行插入顺序维护。 - Max Bileschi