【发布时间】:2011-12-14 12:42:37
【问题描述】:
考虑到我有一组值到值的映射,在 Java 中,这个映射的类型是:
Map<Set<Object>, Object> setToObjMap;
给定一组新对象set,我希望在 setToObjMap 中找到关联键是“搜索集”的子集的所有值。
例如,如果我的地图是:
["telephone", "hat"] -> "book"
["laugh", "fry", "mouse"] -> "house"
["dog", "cat"] -> "monster"
然后,给定搜索集["telephone", "hat", "book", "dog", "cat"],我将检索值“book”和“monster”。
实际上,setToObjectMap 中可能有数万个条目,集合中有数万个可能的值。搜索集通常包含大约 10 个元素。
我希望有一种有效的方法可以做到这一点,不需要遍历地图中的所有键。谁能给点建议?
【问题讨论】:
-
除非您自己实现了
Map和Set并因此可以访问它们的内部,否则这个问题没有实际意义。任何合理的库存实现都不会提供允许解决方案的公共接口,而不是显而易见的。 -
是的,显然我在问我如何实现数据结构,因此问题上的“数据结构”标签。