vo.stream().flatMap(obj -> obj.getFeeSerialNumber().stream()).collect(Collectors.toList())其中的flatMap换成map
时间: 2024-11-24 12:41:47 浏览: 14
当你将`flatMap`函数替换为`map`函数时,原始代码的作用会有所不同。`flatMap`通常用于扁平化流(Stream),即在一个流上应用另一个流生成的结果。在这个例子中,假设`obj.getFeeSerialNumber()`返回的是一个流,那么`flatMap`会将这些子流的所有元素合并成一个新的流。
而如果使用`map`,则会对每个对象的`getFeeSerialNumber()`结果进行转换,而不是连接两个流。每个`obj`都会映射为其`getFeeSerialNumber()`方法返回值的列表,不会形成一个单独的流。收集后的结果将是所有`obj`对象的`feeSerialNumber`属性值,作为一个普通的列表。
原始代码:
```java
List<String> flatMappedResult = vo.stream()
.flatMap(obj -> obj.getFeeSerialNumber().stream())
.collect(Collectors.toList());
```
替换成`map`后的代码:
```java
List<String[]> mappedResult = vo.stream()
.map(obj -> obj.getFeeSerialNumber())
.collect(Collectors.toList());
```
这里,`mappedResult`将是一个对象列表,每个对象包含一个`String[]`类型的数组,而非单个字符串流。
阅读全文