在一个地方,我必须使用一个映射,其中有许多值映射到一个键,所以我想知道在使用HashMap of key、list和MultiMap of key、values在java中是否有显著的性能差异。
发布于 2011-04-29 09:56:41
你可以试一试,但我怀疑有多大的区别,因为它做了很多相同的事情。
IMHO的优点是代码更简单/更清晰,这通常比性能更重要。
发布于 2011-04-29 10:07:12
如果您想使用更方便的Multimap实现,我建议使用google集合。如果您不想引入新的依赖项,那么HashMap<Key, Collection<Value>>应该能做到这一点,这与apache.collections HashMultiMap所做的差不多。
发布于 2011-04-29 09:59:25
散列提供O(1),它速度快,对元素的大小不做任何操作。
对于Multimap,可以将值放在依赖集合中(List,Set)。不同的集合实现提供了不同的性能。
编辑:正如我评论塞巴斯蒂安的答案一样。您可以使用番石榴,它提供了不同的值收集含义:HashMultiMap (HashMap<KEY, HashSet<VALUE>>),ArrayListMultiMap (HashMap<KEY, ArrayList<VALUE>>).
https://stackoverflow.com/questions/5830575
复制相似问题