首页 > 解决方案 > 如何使用 lambda 和条件修复从列表中删除重复项

问题描述

我想知道为什么返回的列表包含“1”

List<Integer> a= Arrays.asList(1,2,3,4,5);
List<Integer> b=Arrays.asList(1,7,8,9,10);

a.stream().filter(first -> (b.stream().anyMatch(second -> first.compareTo(second)!=0)))
          .forEach(System.out::println);

标签: javalambdajava-8duplicatesjava-stream

解决方案


我想你正在寻找:

a.stream().filter(first -> !b.contains(first)).forEach(System.out::println);

在这里,结果流将仅包含 list 中不存在的值b


推荐阅读