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); }}
在上述代码中,我们使用循环和条件判断来消除两个集合中相同的元素。首先,我们创建了两个包含整数的列表list1
和list2
。接着,我们创建了一个空列表result
,用于存储去除相同元素后的结果。然后,我们使用它for
循环遍历list1
使用中的每一个元素list2
的contains
该方法检查该元素是否存在list2
中间。如果不存在,我们将添加这个元素result
列表中。最后,我们打印出来result
列表,即在消除相同元素后得到的结果。
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去除两个集合中相同的元素。首先,我们创建了两个包含整数的列表list1
和list2
。然后,我们用它list1
的stream
该方法将其转化为流动。然后,我们使用它filter
方法和list2
的contains
过滤掉方法list1
中与list2
相同的元素。最后,我们使用它collect
该方法将过滤后的结果收集到新的列表中result
中间,并打印列表。
如果使用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); }}
在上述代码中,我们首先创建了两个列表,包括整数。list1
和list2
。然后,我们创建了一个新的列表result
,并将list1
将所有元素添加到列表中。然后,我们使用它CollectionUtils
类的filter
过滤方法和lambda表达式result
中与list2
同样的元素。最后,我们打印出来`result