我要添加重複鍵在地圖中,輸出類似下面:java中的關聯數組?
google:Android,google:Maps,apple:iPod,apple:iPhone,apple:iOS
是否有可能在Java或JSON?請幫幫我。
我要添加重複鍵在地圖中,輸出類似下面:java中的關聯數組?
google:Android,google:Maps,apple:iPod,apple:iPhone,apple:iOS
是否有可能在Java或JSON?請幫幫我。
是的,有可能在Java中。檢查Apache的MultiMap.
我認爲apache的multihashmap已被棄用。 – 2012-03-18 04:49:42
@ user1021904不,它只是[移至'map'子包(http://commons.apache.org/collections/api-release/org/apache/commons/collections/map/MultiValueMap.html)。 – 2012-03-18 04:51:31
也許你應該鏈接到4.1 Javadoc。 – 2016-08-24 17:47:45
我喜歡的多重映射答案的上方。但是如果你想堅持java.util集合,請嘗試一個列表圖。
請幫我怎麼做? – 2012-03-18 04:51:43
無論如何,MultiMap只是一個更好的API封裝器,可以使用ArrayList鍵。 – 2012-03-18 04:53:58
@ user1021904 - 向我們展示如果您需要幫助,請使用列表地圖。 – 2012-03-18 04:58:54
地圖在Java中不能有重複的鍵,但是你可以把多個值特定鍵:
Map<String, List<String>> map = new HashMap<String, List<String>>();
您還可以使用MultivaluedMap
。
Kunda bora - 您需要學習如何使用Markdown來正確設置您的答案格式。閱讀幫助頁面。 – 2012-03-18 04:56:39
是啊,你是對的..我會照顧這個。 – 2012-03-18 04:57:39
甚至比地圖列表更好的是地圖上套,假設你只希望允許重複鍵而不是重複協會。它可以做這樣的:
import java.util.*;
Map<K, Set<V>> yourMap = new HashMap<K, Set<V>>();
public void add(K key, V value) {
if (!yourMap.containsKey(key)) {
yourMap.put(key, new HashSet<V>());
}
yourMap.get(key).add(value);
}
更換K
和V
與實際鍵和值的類型。
從Apache的圖書館除了另外一個很好的解決方案是使用谷歌的番石榴庫。番石榴實施Multimap,這裏有一篇博客文章解釋了how to use Guava's Multimaps
您應該更改主題以表示MultiMap,因爲那是您顯然需要的。 [關聯數組](https://en.wikipedia.org/wiki/Associative_array)只是一個哈希表或哈希映射。 – 2016-08-24 17:51:56