You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建包含set a或set b或两者所有元素的新集合?

如何创建包含两个Set所有元素的新Set(并集)

你的代码里存在两个关键问题:

  • 用setForAB.add(String.valueOf(a))和setForAB.add(String.valueOf(b))是错误的,这两行会把整个集合的字符串表示(比如["a","b"])作为单个元素塞进新集合,而不是把集合里的元素逐个添加,最终会导致新集合多出两个冗余的“集合字符串”元素。
  • 虽然后面的addAll(a)和addAll(b)是正确的添加元素方式,但前面的错误操作会破坏结果的准确性。

正确的实现方式

方法一:标准基础写法

直接初始化空Set,通过addAll分别添加两个集合的所有元素,Set会自动处理重复元素:

public static Set<String> vereinigung(Set<String> a, Set<String> b) {
    Set<String> setForAB = new HashSet<>();
    setForAB.addAll(a);
    setForAB.addAll(b);
    return setForAB;
}

方法二:Java 8+ Stream API简洁写法

用Stream合并两个集合的元素,再收集为Set:

import java.util.stream.Collectors;
import java.util.stream.Stream;

public static Set<String> vereinigung(Set<String> a, Set<String> b) {
    return Stream.concat(a.stream(), b.stream())
                  .collect(Collectors.toSet());
}

这两种写法都能得到包含set a、set b所有元素的新Set,自动去除重复元素,完全符合你要的“包含任一元素或全部元素”的需求。

内容的提问来源于stack exchange,提问作者haruka kudo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:25:38