来自guava不可变表的派生视图是否在原始提供的表中保留了插入顺序?
例如,请考虑“原始提供的表格”,如下所示。
ImmutableTable<String, String, String> table = ImmutableTable.<String, String, String>builder()
.put("r1", "c1", "v1")
.put("r2", "c1", "v2")
.put("r3", "c1", "v3")
.put("r4", "c2", "v4")
.build();
现在如果我操作
table.column("c1").entrySet().iterator()
迭代会在插入顺序“原始提供的表”中提供结果吗?
注意:根据documentation迭代,从ArrayTable派生的视图会保留原始表中的插入顺序。我使用的用例更倾向于使用不可变表。
答案 0 :(得分:1)
是。请参阅JavaDoc of ImmutableTable。
具有可靠的用户指定迭代顺序的不可变表。
加:
ImmutableTable.column()
在JavaDoc中返回ImmutableMap
,其中包含可靠的用户指定迭代顺序。