java8 list 差集
时间: 2023-11-24 08:53:22 浏览: 76
List求差集
Java 8中可以使用stream()和filter()方法来计算两个List的差集。具体实现如下:
```java
import java.util.ArrayList;
import java.util.List;
public class ListDifference {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(5);
// 差集 reduce1 (list1 - list2)
List<Integer> reduce1 = list1.stream().filter(num -> !list2.contains(num)).collect(Collectors.toList());
System.out.println("---差集 reduce1 (list1 - list2)---");
reduce1.forEach(System.out::println);
// 差集 reduce2 (list2 - list1)
List<Integer> reduce2 = list2.stream().filter(num -> !list1.contains(num)).collect(Collectors.toList());
System.out.println("---差集 reduce2 (list2 - list1)---");
reduce2.forEach(System.out::println);
}
}
```
上述代码中,我们首先定义了两个List:list1和list2。然后,我们使用stream()方法将List转换为Stream,使用filter()方法过滤出差集,最后使用collect()方法将结果转换为List。其中,reduce1表示list1 - list2,reduce2表示list2 - list1。
阅读全文