我正在查看各种 google-collections (或 Apache commons collections )类,我希望能为我的用例找到最合适的 Map 实现提供一些帮助。我对自制 map 不感兴趣。
这里有一些要求:
- 我有一个
Map<String, List<String>>
数据结构(A) - 大多数时候,我想公开一个
Map<String, String>
只读 View (B)。 - (B) 特点:
- (B) 中的键对应于 (A) 中的键
- (B) 中的值对应于“(A) 中的最后一个值”,即
B.get(X) == A.get(X).get(A.get(X).size() - 1)
- (A) 中的值不能为空列表
我知道 ArrayListMultimap
,但它没有公开满足我对 (B) 要求的 View 。
有什么建议吗?
最佳答案
我怀疑你只是想要 Maps.transformValues
来自 Guava :
Map<String, String> lastValueView = Maps.transformValues(originalMap,
new Function<List<String>, String>() {
@Override
public String apply(List<String> input) {
return input.get(input.size() - 1);
}
});
关于java - 一个 Map<String, List<String>> 实现,暴露一个 "last values"的 View Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16335202/