我有一个密钥对映射为(String,Set(Integer))。其中每个条目表示元素的出现。现在我想要做的是从该键中获取一组元素,并找到所有这些元素同时发生的事件。该集将逐渐递增。
我坚持如何使用Set of String和Map of String,Set-Integer作为输入形成一个方法,它将返回一个Set of Integer作为输出,它将包含map中对应于键的所有整数的交集来自一组字符串。
这是我的地图
Map<String,Set<Integer>> transactions = new HashMap<String,Set<Integer>>();
这是字符串
Set<String> check_set
现在问题是如何制作这个方法
Set<Integer> getIntersection(Map<String,Set<Integer>> transactions, Set<String> check_set)
将返回与字符串集中的键对应的所有整数集的交集。 我知道我必须使用retainAll函数,但我无法弄清楚如何使用它。 这有点令人困惑。
答案 0 :(得分:0)
此处已在 Oracle Java教程中提及Set Interface Bulk Operations,并详细解释了这些示例。
s1.retainAll(s2) - 将s1转换为s1和s2的交集。 (两个集合的交集是仅包含两个集合共有的元素的集合。)
要非破坏性地计算两个集合的并集,交集或设置差异(不修改任何一个集合),调用者必须在调用相应的批量操作之前复制一个集合。
Set<Type> intersection = new HashSet<Type>(s1);
intersection.retainAll(s2);