【发布时间】:2020-11-09 18:03:55
【问题描述】:
我这里有一些代码:
public class MapAndFlatMap {
public static Stream<String> letters(String s) {
List<String> result = new ArrayList<>();
for (int i = 0; i < s.length(); i++)
result.add(s.substring(i, i + 1));
return result.stream();
}
public static void main(String[] args) {
List<String> words = Arrays.asList("BOAT", "LORRY");
Stream<String> lowercaseWords = words.stream().map(String::toLowerCase);
List<String> result = lowercaseWords.collect(Collectors.toList());
System.out.println(result);
Stream<String> firstLetters = words.stream().map(s -> s.substring(0, 1));
result = firstLetters.collect(Collectors.toList());
System.out.println(result);
Stream<String> func2 = words.stream().flatMap(w -> letters(w));
result = func2.collect(Collectors.toList());
System.out.println(result);
Stream<Stream<String>> func = words.stream().map(w -> letters(w));
}
}
问题是我不知道如何将 Stream<Stream<String>> func = words.stream().map(w -> letters(w)); 转换为 List 以将其直接显示到控制台中,就像我在前面的示例中所做的那样。
【问题讨论】:
-
你的意思是:
List<Stream<String>> func = words.stream().map(w -> letters(w)).collect(Collectors.toList()); -
期望的输出是什么? List
- > 或 List
? -
@Beri 如果你展示如何做到这两点,这对我真的很有帮助
标签: java java-stream java-threads