当前位置: 首页> 财经> 访谈 > Java8两个List集合取交集、并集、差集、去重并集

Java8两个List集合取交集、并集、差集、去重并集

时间:2025/8/27 12:16:08来源:https://blog.csdn.net/weixin_45816407/article/details/141323327 浏览次数:0次

Stream API:用于对集合元素进行各种操作,如过滤、映射、排序等。
Set:不包含重复元素的集合。
List:有序的元素集合,允许有重复元素。

package com.example.demo;import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;/*** Test 测试** @author Administrator* @version 2024/08/19 13:39**/
public class Test {public static void main(String[] args) {List<String> list1 = Arrays.asList("apple", "banana", "cherry", "date");List<String> list2 = Arrays.asList("banana", "date", "fig", "grape");// 交集List<String> intersection = findIntersection(list1, list2);System.out.println("Intersection: " + intersection);// 并集List<String> union = findUnion(list1, list2);System.out.println("Union: " + union);// 差集 (list1 - list2)List<String> difference = findDifference(list1, list2);System.out.println("Difference (list1 - list2): " + difference);// 去重后的并集List<String> uniqueUnion = findUniqueUnion(list1, list2);System.out.println("Unique Union: " + uniqueUnion);}private static List<String> findIntersection(List<String> list1, List<String> list2) {Set<String> set1 = new HashSet<>(list1);return list2.stream().filter(set1::contains).collect(Collectors.toList());}private static List<String> findUnion(List<String> list1, List<String> list2) {Set<String> set1 = new HashSet<>(list1);set1.addAll(list2);return new ArrayList<>(set1);}private static List<String> findDifference(List<String> list1, List<String> list2) {Set<String> set1 = new HashSet<>(list1);set1.removeAll(new HashSet<>(list2));return new ArrayList<>(set1);}private static List<String> findUniqueUnion(List<String> list1, List<String> list2) {return Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList());}
}

交集 (findIntersection): 使用HashSet快速检查元素是否存在于另一个集合中。

并集 (findUnion): 将两个List转换为Set以自动去除重复元素,然后将它们合并。

差集 (findDifference): 从第一个集合中移除第二个集合中的所有元素。

去重后的并集 (findUniqueUnion): 将两个列表合并成一个流,使用distinct()方法去除重复项。

关键字:Java8两个List集合取交集、并集、差集、去重并集

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: