当前位置: 首页 > 图灵资讯 > 技术篇> 两个list求并集 java

两个list求并集 java

来源:图灵教育
时间:2023-12-04 16:42:48

两个list并集的方法和引言的实现

在编程过程中,经常会遇到需要操作多个集合的情况。一个常见的操作是要求两个集合并集。在Java语言中,我们可以通过多种方法来实现这个操作。本文将介绍几种常用的方法,并提供相应的代码示例。

方法1:使用Set集合概述

Set集合是Java集合框架中的一个实现类。它的特点是元素不重复。我们可以通过将两个列表转换为Set集合,然后将两个集合合并,最后将它们转换回列表来实现求并集的操作。

代码示例
import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;public class UnionOfLists {    public static void main(String[] args) {        List<Integer> list1 = new ArrayList<>();        list1.add(1);        list1.add(2);        list1.add(3);        List<Integer> list2 = new ArrayList<>();        list2.add(2);        list2.add(3);        list2.add(4);        Set<Integer> unionSet = new HashSet<>(list1);        unionSet.addAll(list2);        List<Integer> unionList = new ArrayList<>(unionSet);        System.out.println("并集:" + unionList);    }}
流程图
flowchart TD    A[创建list1] --> B[添加元素]    C[创建list2] --> D[添加元素]    E[创建Set集合unionSet] --> F[在unionset中添加list1]    G[在unionset中添加list2] --> H[创建list集合unionlist]    I[将unionset转换为list] --> J[输出并集]    B --> E    D --> G    F --> H    G --> I    H --> J
方法二:使用两个for循环概述

除了使用set集合外,我们还可以使用两个for循环来实现并集操作。具体的实现思路是将两个列表一个接一个地添加到新列表中。在添加元素之前,我们需要判断新列表是否包含元素,以避免重复添加。

代码示例
import java.util.ArrayList;import java.util.List;public class UnionOfLists {    public static void main(String[] args) {        List<Integer> list1 = new ArrayList<>();        list1.add(1);        list1.add(2);        list1.add(3);        List<Integer> list2 = new ArrayList<>();        list2.add(2);        list2.add(3);        list2.add(4);        List<Integer> unionList = new ArrayList<>(list1);        for (Integer num : list2) {            if (!unionList.contains(num)) {                unionList.add(num);            }        }        System.out.println("并集:" + unionList);    }}
流程图
flowchart TD    A[创建list1] --> B[添加元素]    C[创建list2] --> D[添加元素]    E[创建list集合unionlist] --> F[将list1添加到unionlist]    G[遍历list2] --> H[判断unionlist是否包含当前元素]    I[在unionlist中添加当前元素] --> J[输出并集]    B --> E    D --> G    F --> H    H --> I    I --> G    G --> J
方法三:使用Java 8.stream API概述

如果你使用Java 8或更高的版本,所以你可以使用Java 8.stream 实现并集操作的API。stream API提供了多种操作方法,包括合并和去除集合。

代码示例
import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;public class UnionOfLists {    public static void main(String[] args) {        List<Integer> list1 = new ArrayList<>();        list1.add(1);        list1.add(2);        list1.add(3);        List<Integer> list2 = new ArrayList<>();        list2.add(2);        list2.add(3);        list2.add(4);        List<Integer> unionList = list1.stream()                .distinct()                .collect(Collectors.toList());        unionList.addAll(list2.stream()                .filter(num -> !unionList.contains(num))                .collect(Collectors