使用lambda将List <List <String >>折叠到List <String>中?

Hyd*_*san 4 java lambda java-8

说我有一份清单..

List<List<String>> lists = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

是否有一种聪明的lambda方法将其折叠成所有内容的列表?

Era*_*ran 5

这就是flatMap的用途:

List<String> list = inputList.stream() // create a Stream<List<String>>
                             .flatMap(l -> l.stream()) // create a Stream<String>
                                                       // of all the Strings in
                                                       // all the internal lists
                             .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

  • 看起来你回答所有flatMap问题.:-)注意lambda也可以用`List :: stream`代替. (3认同)