[英]Implementation of super MultiValue map
超级MultiValue映射有任何现成的实现吗?
我需要一张地图
SuperMap<List<String>, List<String>> superMap
其中key
List是一组键,而value List是一set
值。
keys: {a, b, c}
并且这些键中的任何一个的values: {1, 2, 3, 4, 5}
这表示键a
应该具有值{1, 2, 3, 4, 5}
以及键b
和c
。
更新了评论的要求
我需要获得一组的所有钥匙吗? 例如,我需要获取一个相似值的键集合。 在那种情况下,我不能使用您的方法map.put("a", value);
因为我需要分组( a, b
是第一组,而c
与第二组有关)。
UPD2
我正在寻找一种简单且简洁的解决方案来替换此代码
Map<List<String>, List<String>> ops = new HashMap<List<String>, List<String>>() {{
put(asList("a", "aaa"), asList("1", "2"));
put(asList("b", "bbb"), asList("3", "4"));
}};
public static List<String> values(String optionKey) {
for (List<String> key : ops.keySet()) {
for (String k : key) {
if (optionKey.equals(k)) {
return ops.get(key);
}
}
}
return Collections.emptyList();
}
与一些智能隐含形式的任何众所周知的库(谷歌番石榴或类似的东西)。
我认为您正在使数据结构过于复杂。 您可以简单地使用HashMap
或类似的实现。
Map<String, List<String>> map = new LinkedHashMap<>();
List<String> value = new ArrayList<>();
// Fill the value list here...
map.put("a", value);
map.put("b", value);
map.put("c", value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.