java - Guava map 中的 map

标签 java data-structures collections guava

我有一些代码 Map<String, Map<String, String>>对象,它有效(它被实例化为 HashMap 的 HashMap),但我想知道是否有更好的方法在 Guava 中表示这种数据结构。

我考虑过Multimap , 但虽然有 ListMultimapSetMultimap在 Guava 中,我没有找到“MapMultimap”。

我也检查了Table ,这似乎更像它,但它的名字让我不舒服:我拥有的绝对不是一张 table ,而是一棵树。 (第二个键之间没有重叠)

是否有更好的 Guava 替代品,还是我应该坚持使用 Map<String, Map<String, String>>

最佳答案

Table 似乎很适合您的需要。但请确保您选择了正确的实现方式。特别是,如果您的第二个键都是不同的(表中的列),则生成的表将是稀疏的,您应该考虑到这一点来管理内存使用。

因此您应该避免使用 ArrayTable,但可以使用任何其他实现。请注意 docs提到 ImmutableTable 已针对更稀疏和更密集的数据集优化实现。

如果您的 Table 是一次性构建的,您可以使用 ImmutableTable.Builder如果表在多个线程之间共享,并从这种优化中获益并简化您的生活。

关于java - Guava map 中的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14645525/

相关文章:

c# - 找到包含查询数组所有元素的输入数组的最小窗口

java - 没有重复项的可排序 Java 集合

java - 如何获取任意PDF对象的页码?

Java BigDecimal 可以用逗号代替点吗?

java - 使用 Spring 精简布局强制将本地存储库中的 lib 包含到 JAR 中

string - 我应该使用什么数据结构来查找相似的字符串?

java - 查找两个数组的并集

C++ 堆栈实现(作业)

c# - 字典可以按不同的键排序吗?

java - 选择框架中的所有对象