是否可以实现多键多值映射?

3
我看到有一个 Multimap 允许键值对中的重复值 http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html 我还注意到 guava 有一个 Table,允许多个键,但不允许重复的值。http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Table.html 我找不到任何允许重复值的“Table”,或者允许多个键的“Multimap”。
这是已经存在的东西,还是我必须自己实现?
我只想实现一个带有两个键的Multimap,即<K1,K2,Value>

你的意思是k1k2应该作为一个条目的复合键使用吗?还是说一个值可以通过k1k2进行索引? - erickson
K1和K2都应该是那个值的复合键。 - Brandon Ling
好的,Louis nailed it。 (他开发了Guava。) - erickson
3个回答

2

我不知道有什么支持这个需求的工具。但是,只需使用自定义的对偶类来创建一个Multimap<MyK1AndK2Pair, Value>,或者使用Table<K1, K2, List<Value>>并手动管理即可。


1
关于嵌套地图怎么处理?
Multimap<K1, Multimap<K2, Value>> doubleMultiMap = new HashMultiMap<>();

0
我认为你可以使用 Apache Commons 的 MultiKeyMap。它的描述是:

一种使用多个键映射值的 Map 实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接