java如何将Stream<String[]>转换为Stream<String>?
我正试图将我的字符串[]流展平为字符串流
例如
{ "A", "B", "C" }, {"D, "E" } to "A", "B", "C", "D", "E"
这是我目前掌握的代码:
Files.lines(Paths.get(file)).map(a -> a.split(" "));
Files.lines(path)
返回Stream[String]
,我用“”分割每个字符串,得到所有单词的数组(现在是Stream<String[]>
)
我想将每个单词数组展平成单独的元素,因此Stream[String]
而不是Stream<String[]>
当我使用flatMap而不是map时,我得到一个错误:Type mismatch: cannot convert from String[] to Stream<? extends Object>
我以为flatMap
是用来做这个的?完成我想做的事情的最佳方式是什么
教授的问题:
使用流:编写一种根据长度对文件中的单词进行分类的方法:
public static Map<Integer,List<String>> wordsByLength(String file)
throws IOException {
// COMPLETE THIS METHOD
}
# 1 楼答案
您需要
.flatMap()
操作:在正常的
.map()
操作之后结合正常的
map
操作:最后你需要