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);
优点:可读性强。
缺点:没有类型安全
假设我有两个列表:
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);
优点:可读性强。 缺点:没有类型安全