java - 一个 Map<String, List<String>> 实现,暴露一个 "last values"的 View Map

标签 java guava apache-commons-collection

我正在查看各种 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/

相关文章:

Java Commons Collections removeAll

用于特殊滚动、循环队列的 Java Collection

java - 如何检查int是否已初始化?

java - 将表 Guava 用于 hashbasedTable

Java交集集合

java - map 中 HashMap 的 ImmutableMap.of() 解决方法?

java - guava-libraries - Ordering 类线程安全吗?

java - 有什么方法可以仅使用 ID 在不相关的 **表** 或 **实体** 上使用左连接吗?在标准生成器中

java - 链表上的选择排序输出不正确

java - Spring boot @ExceptionHandler 未捕获子类异常