基于密钥子集匹配条目的哈希/映射

时间:2014-03-20 23:01:45

标签: java data-structures hash

是否有Map实现可用于确定地图中是否存在某个键的子集?

例如,考虑一组由一组字符串键入的地图:

Map<Set<String>, Object> map = new SomeExoticMap<>();

如果我们添加一个值:

Set<String> key = new HashSet<>();
key.add("1");
key.add("2");
map.put(key, "foo");

我想确定地图中是否存在任何条目键的子集:

Set<String> subset = new HashSet<>();
subset.add("2");
assert true == map.containsKey(subset);

我还想学习我的关键子集匹配的所有值:

List<Object> matchedValues = map.subsetValues(subset);
assert matchedValues == Arrays.asList("foo");

显然,这个问题可以通过线性搜索来解决,但这不能满足我的需求。是否有类似Map的数据结构可以做这种事情?如果没有,怎么会建立一个?

0 个答案:

没有答案