Java 折叠列表<;列表<;字符串>&燃气轮机;进入列表<;字符串>;使用lambda?
假设我有一个列表Java 折叠列表<;列表<;字符串>&燃气轮机;进入列表<;字符串>;使用lambda?,java,lambda,java-8,Java,Lambda,Java 8,假设我有一个列表 List<List<String>> lists = new ArrayList<>(); List List=new ArrayList(); 有没有一种聪明的lambda方法可以将其折叠成一个包含所有内容的列表?您可以这样做 List<String> result = lists.stream() .flatMap(l -> l.stream()) .collect(Collectors.toList
List<List<String>> lists = new ArrayList<>();
List List=new ArrayList();
有没有一种聪明的lambda方法可以将其折叠成一个包含所有内容的列表?您可以这样做
List<String> result = lists.stream()
.flatMap(l -> l.stream())
.collect(Collectors.toList());
List result=lists.stream()
.flatMap(l->l.stream())
.collect(Collectors.toList());
这就是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());
List List=inputList.stream()//创建一个流
.flatMap(l->l.stream())//创建一个流
//在所有的字符串中
//所有内部列表
.collect(Collectors.toList());
不要认为这会起作用--flatMap
的参数必须是一个函数,它可以将列表
转换为流
。请参阅。@ajb:再看一看函数.identity()
doc,您是对的。谢谢看起来你回答了所有平面图问题。:-)注意lambda也可以替换为List::stream
。