Java Stream对三个List取交集
简介
在Java中,我们可以使用Stream API来操作集合,其中包括对多个集合进行交集操作。本文将介绍如何使用Java Stream对三个List进行交集操作。
流程
下面是实现这一目标的步骤:
flowchart TD
A(创建三个List) --> B(使用Stream获取交集)
B --> C(将交集结果转换为List)
C --> D(打印交集结果)
代码实现
创建三个List
首先,我们需要创建三个List,分别表示三个集合,我们可以使用Arrays.asList()
方法来创建List,并添加一些元素。
List<String> list1 = Arrays.asList("A", "B", "C", "D", "E");
List<String> list2 = Arrays.asList("C", "D", "E", "F", "G");
List<String> list3 = Arrays.asList("E", "F", "G", "H", "I");
使用Stream获取交集
接下来,我们将使用Stream API来获取三个List的交集。我们可以使用stream()
方法将List转换为Stream对象,并使用filter()
方法来筛选出交集的元素。
List<String> intersection = list1.stream()
.filter(list2::contains) // 筛选出list1和list2的交集元素
.filter(list3::contains) // 筛选出list1、list2和list3的交集元素
.collect(Collectors.toList()); // 将交集结果转换为List
将交集结果转换为List
在上面的代码中,我们使用了collect()
方法将交集结果转换为List。Collectors.toList()
方法用于将Stream中的元素收集到List中。
打印交集结果
最后,我们可以使用System.out.println()
方法打印交集的结果。
System.out.println(intersection);
完整的代码如下所示:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list1 = Arrays.asList("A", "B", "C", "D", "E");
List<String> list2 = Arrays.asList("C", "D", "E", "F", "G");
List<String> list3 = Arrays.asList("E", "F", "G", "H", "I");
List<String> intersection = list1.stream()
.filter(list2::contains) // 筛选出list1和list2的交集元素
.filter(list3::contains) // 筛选出list1、list2和list3的交集元素
.collect(Collectors.toList()); // 将交集结果转换为List
System.out.println(intersection);
}
}
类图
下面是本文中涉及的类的类图表示:
classDiagram
class Main {
+main(args: String[]): void
}
总结
本文介绍了如何使用Java Stream对三个List进行交集操作。通过创建三个List并使用Stream API,我们可以轻松地获取集合的交集。希望这篇文章能够帮助刚入行的小白理解如何实现这一功能。