面试题答案
一键面试import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class FlatMapExample {
public static void main(String[] args) {
List<List<String>> listOfLists = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
List<String> flatList = listOfLists.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
flatList.forEach(System.out::println);
}
}
上述代码通过stream
方法将外层List
转换为流,接着使用flatMap
方法将内层List
的流扁平化为一个流,最后通过collect
方法收集到List
中并输出每个字符串。如果只是想直接输出,可以使用以下方式:
import java.util.Arrays;
import java.util.List;
public class FlatMapPrintExample {
public static void main(String[] args) {
List<List<String>> listOfLists = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
listOfLists.stream()
.flatMap(List::stream)
.forEach(System.out::println);
}
}