java中的关联数组?

时间:2012-03-18 04:42:10

标签: java json

我想在地图中添加重复键,输出如下所示:

google:Android,google:Maps,apple:iPod,apple:iPhone,apple:iOS

在java或json中有可能吗?请帮帮我。

5 个答案:

答案 0 :(得分:3)

是的,可以用Java编写。检查apache的MultiMap.

答案 1 :(得分:3)

我喜欢上面的MultiMap答案。但是如果你想坚持使用java.util集合,请尝试列表地图。

答案 2 :(得分:3)

比列表地图更好的是集合映射,假设您只想允许重复的而不是重复关联。可以这样做:

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);
}

KV替换为实际的键和值类型。

答案 3 :(得分:2)

java中的Map永远不会有重复键,但是您可以为特定键添加多个值:

Map<String, List<String>> map = new HashMap<String, List<String>>();

您也可以使用MultivaluedMap

答案 4 :(得分:0)

除了Apache的库之外,另一个好的解决方案是使用Google的番石榴库。 Guava实现了Multimap,这是一篇解释how to use Guava's Multimaps

的博客文章