当前位置: 首页 > 图灵资讯 > 技术篇> Java怎么剔除两个集合相同的元素

Java怎么剔除两个集合相同的元素

来源:图灵教育
时间:2024-01-28 16:47:44

Java如何去除两个集合相同元素

在Java中,通过使用循环和条件判断和使用Java来消除两个集合相同元素的方法可以实现 8.Stream API和Apache Commons collections库。

方法1:使用循环和条件判断
import java.util.ArrayList;import java.util.List;public class Main {    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> result = new ArrayList<>();                for (Integer i : list1) {            if (!list2.contains(i)) {                result.add(i);            }        }                System.out.println(result);    }}

在上述代码中,我们使用循环和条件判断来消除两个集合中相同的元素。首先,我们创建了两个包含整数的列表list1list2。接着,我们创建了一个空列表result,用于存储去除相同元素后的结果。然后,我们使用它for循环遍历list1使用中的每一个元素list2contains该方法检查该元素是否存在list2中间。如果不存在,我们将添加这个元素result列表中。最后,我们打印出来result列表,即在消除相同元素后得到的结果。

方法二:使用Java 8.Stream API
import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;public class Main {    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> result = list1.stream()                                    .filter(i -> !list2.contains(i))                                    .collect(Collectors.toList());                System.out.println(result);    }}

Java在上述代码中使用 8.Stream API去除两个集合中相同的元素。首先,我们创建了两个包含整数的列表list1list2。然后,我们用它list1stream该方法将其转化为流动。然后,我们使用它filter方法和list2contains过滤掉方法list1中与list2相同的元素。最后,我们使用它collect该方法将过滤后的结果收集到新的列表中result中间,并打印列表。

方法三:使用Apachee Commons collections库

如果使用apachee,如果使用apache Commons 你可以使用Collections库CollectionUtils从两个集合中去除相同的元素。

首先,您需要将Apache介绍到您的项目中 Commons 依赖Collections库。您可以在Maven项目中pom.xml以下依赖添加到文件中:

<dependency>    <groupId>org.apache.commons</groupId>    <artifactId>commons-collections4</artifactId>    <version>4.4</version></dependency>

然后,您可以使用以下代码去除两个集合中相同的元素:

import java.util.ArrayList;import java.util.List;import org.apache.commons.collections4.CollectionUtils;public class Main {    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> result = new ArrayList<>(list1);        CollectionUtils.filter(result, i -> !list2.contains(i));                System.out.println(result);    }}

在上述代码中,我们首先创建了两个列表,包括整数。list1list2。然后,我们创建了一个新的列表result,并将list1将所有元素添加到列表中。然后,我们使用它CollectionUtils类的filter过滤方法和lambda表达式result中与list2同样的元素。最后,我们打印出来`result