在Java中,可以使用Lambda表达式和Stream API来计算两个列表的差集。\n\n假设我们有两个列表list1和list2,我们想找到list1中不在list2中的元素,可以按照以下步骤进行操作:\n\n1. 将list1和list2转换为流:Stream<T> stream1 = list1.stream();Stream<T> stream2 = list2.stream();\n\n2. 使用filter()方法将stream1中的元素过滤掉那些在stream2中存在的元素:stream1.filter(element -> !stream2.anyMatch(element::equals));\n\n3. 使用collect()方法将过滤后的元素收集到一个新的列表中:.collect(Collectors.toList());\n\n完整的代码如下所示:\n\njava\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.stream.Collectors;\nimport java.util.stream.Stream;\n\npublic class Main {\n public static void main(String[] args) {\n List<Integer> list1 = new ArrayList<>();\n list1.add(1);\n list1.add(2);\n list1.add(3);\n\n List<Integer> list2 = new ArrayList<>();\n list2.add(2);\n list2.add(3);\n list2.add(4);\n\n List<Integer> difference = list1.stream()\n .filter(element -> !list2.stream().anyMatch(element::equals))\n .collect(Collectors.toList());\n\n System.out.println(difference); // 输出 [1]\n }\n}\n\n\n在这个例子中,list1和list2的差集是[1]。


原文地址: https://www.cveoy.top/t/topic/pq7P 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录