繁体   English   中英

为什么Google Collections不像Apache Collections那样支持MultiKeyMap?

[英]Why doesn't Google Collections support MultiKeyMap like Apache Collections?

谷歌的决定是否与SortedMultiSet (stackoverflow问题)类似,还是因为没有使用MultiKeyMap

我知道MultiKeyMap的替代方法可以是使用自定义类作为包含多个键作为其类成员的键。 相反,我喜欢在调用MultiKeyMap的get时指定多个键的概念。

Apache的MultiKeyMap版本很棒,但我严重缺少泛型,因此我们会考虑使用Google Collections来实现它的现代化。 如果有人知道Google为什么还没有支持它,或者有更好的替代方案,那么请回复。

仅供参考,已接受的答案于2010年3月得到解答,但截至2010年9月,番石榴包含了Table

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

我认为泛型可能是这里实现的showstopper。 如果仅查看Map接口,则会有密钥类型(K)和值类型(V)的通用说明符。 我不相信可以轻松地使用泛型来指定它而不将实现分成多个类(每个关键组件数一个)。

你需要一个班级:

MultiKeyMap2<K1,K2,V>
MultiKeyMap3<K1,K2,K3,V>
MultiKeyMap4<K1,K2,K3,K4,V>
MultiKeyMap5<K1,K2,K3,K4,K5,V>

底层实现基本上是按照你的建议(使用自定义类)。 但是,它并没有正式为它创建一个类,所有内容都是内联的。 这真的是一个实现细节。 但是要使用Google集合,执行相同操作的自定义类的操作方式与我确定实现hashCode()和equals()的方式大致相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM