添加两个集合中的元素

Mac*_*Iam 12 java int set

如何从两组中添加元素?

If there's a set one (1, 3, 6, 8)
And a set two (2, 4, 6, 8)
Run Code Online (Sandbox Code Playgroud)

我如何将这两者中的元素组合在一起?

Output should be (1, 2, 3, 4, 6, 8)
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

Set<Integer> one = new HashSet();
one.add(1);
one.add(3);
// and so on
Set<Integer> two = new HashSet();
two.add(2);
two.add(4);
// and so on
Set<Integer> newSet = new HashSet();
newSet.add(one);
newSet.add(two);

return newSet;
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为add方法仅适用于单个整数,而不适用于整数集合.有没有一种方法可以将两组一起添加?

我也必须归还这套.我怎么做?

Boh*_*ian 36

使用 Set.addAll()

Set<Integer> one = new HashSet<Integer>();
Set<Integer> two = new HashSet<Integer>();
Set<Integer> newSet = new HashSet<Integer>(one);
newSet.addAll(two);
Run Code Online (Sandbox Code Playgroud)

此外,您应该键入构造函数(如上所述).

要将其转换为方法,请尝试以下方法:

public static Set<Integer> addTwoSets(Set<Integer> one, Set<Integer> two) {
    Set<Integer> newSet = new HashSet<Integer>(one);
    newSet.addAll(two);
    return newSet;
}
Run Code Online (Sandbox Code Playgroud)

事实上,让我们完全疯了......这是一个方法,它将采用任何类型的任何类型的集合来扩展所需的类型,并将它们合并为一个集合:

public static <T> Set<T> merge(Collection<? extends T>... collections) {
    Set<T> newSet = new HashSet<T>();
    for (Collection<? extends T> collection : collections)
        newSet.addAll(collection);
    return newSet;
}
Run Code Online (Sandbox Code Playgroud)