[英]Why doesn't Google Collections support MultiKeyMap like Apache Collections?
谷歌的决定是否与SortedMultiSet
(stackoverflow问题)类似,还是因为没有使用MultiKeyMap
?
我知道MultiKeyMap
的替代方法可以是使用自定义类作为包含多个键作为其类成员的键。 相反,我喜欢在调用MultiKeyMap
的get时指定多个键的概念。
Apache的MultiKeyMap
版本很棒,但我严重缺少泛型,因此我们会考虑使用Google Collections来实现它的现代化。 如果有人知道Google为什么还没有支持它,或者有更好的替代方案,那么请回复。
我们有一个非常好的双层映射实现,我们称之为“表”(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.