Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多值映射与多值映射_Java_Performance_Map - Fatal编程技术网

Java 多值映射与多值映射

Java 多值映射与多值映射,java,performance,map,Java,Performance,Map,在一个地方,我必须使用一个映射到单个键的多个值的映射,因此我想知道使用键的HashMap、list和键的MultiMap之间是否有显著的性能区别,java中的值。您可以尝试它,但我怀疑它有多大区别,因为它做的事情基本相同 优点是代码更简单/更清晰,这通常比性能更重要。哈希提供了O(1),它速度快,并且与元素大小无关 关于多重映射,您可以将值放入依赖集合(列表、集合)。不同的集合实现提供不同的性能 编辑:正如我对塞巴斯蒂安回答的评论。您可以使用Guava,它提供了不同的值集合实现:HashMult

在一个地方,我必须使用一个映射到单个键的多个值的映射,因此我想知道使用键的HashMap、list和键的MultiMap之间是否有显著的性能区别,java中的值。

您可以尝试它,但我怀疑它有多大区别,因为它做的事情基本相同

优点是代码更简单/更清晰,这通常比性能更重要。

哈希提供了O(1),它速度快,并且与元素大小无关

关于多重映射,您可以将值放入依赖集合(列表、集合)。不同的集合实现提供不同的性能


编辑:正如我对塞巴斯蒂安回答的评论。您可以使用Guava,它提供了不同的值集合实现:
HashMultiMap(HashMap)
ArrayListMultiMap(HashMap)

如果您想使用更方便的多重映射实现,我建议您使用google collections。如果您不想引入新的依赖项,
HashMap
应该采用与apache.collections HashMultiMap类似的方法。

如果它是一个映射键->值,请使用映射实现


由于您将有一些具有相同键的值,请使用Google集合(现在的guava library)中的来完成任务。

Hashmap/HashTable/Hash*不提供O(1),在最坏的情况下,与所有输入键发生冲突的地方是O(N)。@Pih:hmm…大O并不表示最坏的情况。好的,我考虑了O()表示法作为大O表示法,通常用于最坏的情况。无论如何,哈希表提供了摊销O(1)访问。是的。谷歌收藏被命名为“番石榴”。有一些不同的值集合:HashMultiMap、ArrayListMultiMap。。。