在 Java 中 Set
的并集或交集的最简单方法是什么?对于这个简单的问题,我已经看到了一些奇怪的解决方案(例如,手动迭代这两个集合)。
原文由 Mahozad 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Java 中 Set
的并集或交集的最简单方法是什么?对于这个简单的问题,我已经看到了一些奇怪的解决方案(例如,手动迭代这两个集合)。
原文由 Mahozad 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然 guava 确实更整洁并且几乎是标准的,但这是一种仅使用标准 Java 进行并 集 和 相交 的非破坏性方法
Set s1 = Set.of(1,2,3);
Set s2 = Set.of(3,4,5);
Set union = Stream.concat(s1.stream(),s2.stream()).collect(Collectors.toSet());
Set intersect = s1.stream().filter(s2::contains).collect(Collectors.toSet());
原文由 David Lilljegren 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.2k 阅读
8 回答5.9k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
最简单的单线解决方案是这样的:
上面的解决方案是 破坏性 的,意味着我改变了原来的 set1 的内容。
如果您不想修改现有的集合,请创建一个新集合: