java8中的减法运算,用于减去列表

Minus operation in java 8 for subtracting Lists

假设我有两个列表:

List<Integer> list1 =  Arrays.asList(1, 2, 3);
List<Integer> list2 =  Arrays.asList(1, 2, 4, 5);

现在我要表演(list1 - list2)。预期输出为 {3}。如何使用 java 8 个流来做到这一点?

试试这个:

List<Integer> difference = new ArrayList<>(list1);
difference.removeAll(list2);
System.out.println("Remove: " + difference); //3

如果必须使用流:

List<Integer> diff = list1.stream()
  .filter(item -> !list2.contains(item))
  .collect(Collectors.toList());

使用 Apache 公共资源:

CollectionUtils.subtract(list1, list2);

优点:可读性强。 缺点:没有类型安全