嵌套列表java 8流之间的交集

Has*_*imR 5 java nested java-8 java-stream

我有一个嵌套列表Long.例如:

List<List<Long>> ids = [[1,2,3],[1,2,3,4],[2,3]];
Run Code Online (Sandbox Code Playgroud)

有没有办法使用流来创建所有列表中存在的新项目列表:

List<Long> result = [2,3];
Run Code Online (Sandbox Code Playgroud)

Rus*_*lan 12

没有流的解决方案非常简洁:

List<Long> result = new ArrayList<>(ids.get(0));
ids.forEach(result::retainAll);

System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

更新:正如@ernest_k在评论中提到的那样,为了避免多余的retainAll()电话,你可以在之前获得子列表:

ids.subList(1, ids.size()).forEach(result::retainAll); 
Run Code Online (Sandbox Code Playgroud)