Java 为什么';Google Collections是否支持类似Apache Collections的多键映射?

Java 为什么';Google Collections是否支持类似Apache Collections的多键映射?,java,collections,guava,apache-commons,Java,Collections,Guava,Apache Commons,谷歌的决定与SortedMultiSet的决定类似吗 还是因为没有使用多键映射 我知道,MultiKeyMap的另一种选择是使用自定义类作为键,其中包含多个键作为其类成员。相反,我喜欢在调用MultiKeyMap的get时指定多个键的概念 Apache版本的MultiKeyMap非常好,但我严重缺少泛型,因此我研究了Google Collections以获得它的现代实现。如果有人知道谷歌为什么还不支持它,或者有更好的替代方案,请回答。我认为泛型可能是这里实现的障碍。如果只查看映射接口,则键类型(

谷歌的决定与SortedMultiSet的决定类似吗 还是因为没有使用多键映射

我知道,
MultiKeyMap
的另一种选择是使用自定义类作为键,其中包含多个键作为其类成员。相反,我喜欢在调用
MultiKeyMap
的get时指定多个键的概念


Apache版本的
MultiKeyMap
非常好,但我严重缺少泛型,因此我研究了Google Collections以获得它的现代实现。如果有人知道谷歌为什么还不支持它,或者有更好的替代方案,请回答。

我认为泛型可能是这里实现的障碍。如果只查看映射接口,则键类型(K)和值类型(V)都有通用说明符。我认为,如果不将实现分成多个类(每个关键组件对应一个类),就不可能使用泛型轻松地指定它

您需要为以下各项设置一个类:

MultiKeyMap2<K1,K2,V>
MultiKeyMap3<K1,K2,K3,V>
MultiKeyMap4<K1,K2,K3,K4,V>
MultiKeyMap5<K1,K2,K3,K4,K5,V>
MultiKeyMap2
多键映射3
多键映射4
多键映射5

底层实现基本上是按照您的建议进行(使用自定义类)。然而,它并没有正式为它创建一个类,一切都是内联的。这实际上是一个实现细节。但是要使用Google collections,一个自定义类来执行相同的任务,其操作方式与我肯定要实现hashCode()和equals()。

我们有一个非常好的两层映射的实现,我们称之为“表”(K1是“行键”,K2是“列键”),我们只是还没有发布它。不过,过去的两个关键点是收益递减。

仅供参考,2010年3月给出了公认的答案,但截至2010年9月,番石榴包括在
表中


很高兴有官方的谷歌收藏人员回应:)我能在这个“表”数据结构中偷偷地找到一个峰值吗?为什么没有一个三层和四层的地图呢?@kevin bourrillion这个两层的地图已经发布了吗?是的,正如这里投票最多的答案所指出的。我的回答应该是不被接受的。我知道我来晚了,但你能解释一下为什么“过去的两个关键点,虽然,是递减的回报。”?你能用你在这里提供的更新信息编辑被接受的答案吗?@MonisIqbal你不应该这样做。这是。如果你不喜欢被接受的答案,就投反对票。如果你真的喜欢我的,就投票吧,这就是按钮的作用。但是你不应该完全编辑别人的答案,编辑功能是为了不改变内容的改进。