【发布时间】:2021-09-14 04:30:39
【问题描述】:
我有一个哈希图
HashMap<Integer,Integer> hashmap = new HashMap<Integer,Integer>();
hashmap.put(0,1);
hashmap.put(1,1);
hashmap.put(2,1);
hashmap.put(3,2);
还有一个集合
Set<Set<Integer>> set = Set.of(Set.of(0, 1, 2), Set.of(3, 4, 5), Set.of(6, 7, 8));
现在我想将我的 hashmap 与集合进行比较,并输出包含所有 3 个键且值相同的集合。例如 hashmap {0=1, 1=1, 2=1, 3=2} 应该输出集合 (0,1,2)。 我尝试使用流():
hashmap.entrySet().stream().filter(e-> e.getValue()==1).map(Map.Entry::getKey).forEach(System.out::println);
但我不知道如何相互比较
Stream<Set<Integer>> streamsets = set.stream();
streamsets.forEach(System.out::println);
【问题讨论】:
-
澄清一下,你想在
set中找到一个集合S,这样S中的每个元素都是映射hashmap的一个键,与S的每个元素关联的值是一样吗? -
@Sweeper 完全正确!
标签: java nested hashmap set java-stream