在Java中,集合的并集操作是指将两个或多个集合中的元素合并,形成一个新的集合,同时去除重复的元素。Java标准库中提供了几种简单的方法来实现集合的并集操作,以下是一些常用的方法:
使用Collections.addAll()方法
对于基本类型的数组或集合,你可以使用Collections.addAll()方法来创建一个新的集合,并添加两个集合中的所有元素。
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
public class UnionExample {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
List<Integer> unionList = new ArrayList<>(list1.size() + list2.size());
Collections.addAll(unionList, list1.toArray(), list2.toArray());
System.out.println("Union of two lists: " + unionList);
}
}
使用Set接口和addAll()方法
如果你使用的是Set类型的集合,可以直接调用addAll()方法来合并两个集合。
import java.util.HashSet;
import java.util.Set;
import java.util.Arrays;
public class UnionExample {
public static void main(String[] args) {
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));
set1.addAll(set2);
System.out.println("Union of two sets: " + set1);
}
}
使用Stream API
Java 8 引入的Stream API提供了更高级的集合操作方式,使用Stream可以很方便地实现集合的并集操作。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class UnionExample {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
List<Integer> unionList = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println("Union of two lists using Stream API: " + unionList);
}
}
使用Collectors.toSet()方法
如果你的目标是创建一个新的Set集合,可以直接使用Collectors.toSet()来合并两个集合。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class UnionExample {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
Set<Integer> unionSet = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toSet());
System.out.println("Union of two lists using Collectors.toSet(): " + unionSet);
}
}
以上方法都是实现Java集合并集操作的简单示例。选择哪种方法取决于你的具体需求,比如你需要的集合类型、性能要求以及代码的简洁性。对于基本类型数组或集合,Collections.addAll()和addAll()方法是最直接的选择;而Stream API和Collectors.toSet()方法则提供了更灵活和功能丰富的解决方案。
