Wan*_*now 14 java collections guava data-structures
我有一些带有Map<String, Map<String, String>>对象的代码,它有效(它被实例化为HashMaps的HashMap),但我想知道是否有更好的方法来表示Guava中的这个数据结构.
我也考虑过Multimap,但同时有ListMultimap和SetMultimap番石榴,我没有发现任何"MapMultimap".
我也检查过Table,它看起来更像是它,但它的名字让我感到不舒服:我所拥有的绝对不是一张桌子而是一棵树.(第二个键之间没有重叠)
是否有更好的番石榴替代品或我应该坚持使用Map<String, Map<String, String>>?
ass*_*ias 23
Table似乎非常适合您的需要.但请确保选择正确的实施方案.特别是,如果您的第二个键都是不同的(表中的列),结果表将是稀疏的,您应该考虑到这一点来管理内存使用情况.
所以你应该避免使用ArrayTable,但可以使用任何其他实现.请注意,文档提到了ImmutableTable优化的sparser和更密集数据集的实现.
如果你Table是在一次构建,您可以使用ImmutableTable.Builder并受益于这种优化和简化你的生活,如果表中的几个线程之间共享.