flatMap()将LinkedList <String>流转换为String流

RVK*_*VKS 6 java java-8 java-stream flatmap

我的目标正是标题所说的.我在做的是:

.stream().flatMap(x -> x.getTitles())
Run Code Online (Sandbox Code Playgroud)

getTitles()返回一个LinkedList<String>,我期望flatMap()完成这项工作并创建一个字符串流而不是一个流LinkedList<String>,但Eclipse说:

类型不匹配:无法转换LinkedList<String>Stream<? extends Object>

我怎样才能做到这一点?(我需要用流做,它是更大的流计算的一部分)

Psh*_*emo 9

flatMap期望映射到流,而不是集合.使用

.stream().flatMap(x -> x.getTitles().stream())
//                                   ^^^^^^^^ add this
Run Code Online (Sandbox Code Playgroud)

  • 另一种方法可以做到这一点:说`x`是`MyClass`的一个实例,然后你可以做`.stream().map(MyClass :: getTitles).flatMap(Collection :: stream)` (2认同)