是否有可能以任何方式將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