我想在地图中添加重复键,输出如下所示:
google:Android,google:Maps,apple:iPod,apple:iPhone,apple:iOS
在java或json中有可能吗?请帮帮我。
答案 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);
}
将K
和V
替换为实际的键和值类型。
答案 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
的博客文章