是否有可能以任何方式将Multimap转换为HashMap。我知道我们可以将multimap转换为map,但是我想将multimap转换为hashmap。我不认为它是可能的,但如果有任何出路,请让我知道。Guava Mutlimap to HashMap
回答
是否有可能以任何方式将Multimap转换为HashMap。
不,你不能投多重映射到一个HashMap,因为 - 正如名称所表示的 - 他们是不同的东西,即Multimap
意味着多个值映射到一个关键而Map
是旨在将一个值映射到密钥。因此,将Multimap<K, V>
转换为Map
总是会产生类似Map<K, Collection<V>>
(或者,取决于实际的Multimap
实施方式以及使用其他方法Map<K, List<V>>
等)。
我知道我们可以将multimap转换为地图,但我想将multimap转换为hashmap。
你可能指的是asMap()
方法返回一个Map<K, Collection<V>>
。这些可能不是HashMap
的实例,但您可以通过调用Maps.newHashMap(multimap.asMap())
轻松创建一个基本上采用生成的映射并将值(引用)复制到新的HashMap
。
'不,你不能把一个Multimap映射到一个HashMap,因为 - 名称表明 - 他们是不同的东西'大声笑 - 没有任何意义。你可以将'Exception'强制转换为'RunTimeException'。 – xenteros
@xenteros不,你不能,'RuntimeException'扩展'Exception',而不是相反。至于答案,这显然意味着'Multimap'和'Map'是无关的接口,就像后面开发的那样。 –
@xenteros'RuntimeException' _是一个''Exception'',因此情况有效(尽管不一定在两个方向取决于实际的实现)。然而'Multimap'和'Map'是不同的东西,并且没有共同的层次结构(除了'Object' ofc)。只是他们都是地图并不意味着你可以_cast_他们。 – Thomas
- 1. HashMap to JsonSting?
- 2. HashMap to JTable
- 3. Java HashMap key to jQuery
- 4. Java HashMap - String to bukkit Vector?怎么样?
- 5. Guava ImmutableSortedSetMultimap?
- 6. Guava EventBus调度
- 7. 如何使用guava CacheBuilder?
- 8. 使用超时创建HashMap将会使用Guava缓存工作吗?
- 9. Guava MultiSet vs Map?
- 10. Guava Group按键
- 11. MultiMap Table with Guava
- 12. Guava mergeSorted issue
- 13. Guava Cache get Deprecation
- 14. Guava ImmutableMap推迟Map调整大小吗?
- 15. GWT和Guava麻烦
- 16. Google Guava newConcurrentMap base implementation
- 17. Guava MinMaxPriorityQueue实例化
- 18. invokeAll()vs Guava ListenableFuture + addCallback()
- 19. Collections.emptyList()vs guava的ImmutableList.of()
- 20. Google Guava:谓词assertTrue
- 21. Spock Mock与Guava Collection
- 22. Failed从Maven检索Guava Libs
- 23. GWT 2.5.1 Google Guava 15.0错误?
- 24. 使用Google Guava和Android 1.6
- 25. Ada HashMap in HashMap
- 26. Java - List to HashMap <Long,Set <String>>
- 27. Hot to port entrySet()方法从HashMap <Integer,Object>转换为trove4j?
- 28. 如何实例化guava EnumBiMap?
- 29. Guava CacheBuilder删除监听器
- 30. HashMap遍历的HashMap
由于名称表明它们是不同的东西,因此不能将'Multimap'命名为'HashMap'。你可以在'Multimap'上调用'asMap()',如果你想确保它是'HashMap',可以尝试'Maps.newHashMap(multimap.asMap())'。但请注意一点:你会得到一个'Map>'所以如果你有任何机会在'Map '之后,就会被警告这可能会导致数据丢失(出于某种原因存在multimaps) 。 –
Thomas
我的回答对你有帮助吗? – xenteros
@Thomas你为什么不提供你的评论作为答案? – mfulton26