add java mapping
This commit is contained in:
		@@ -370,9 +370,21 @@ Stream 中最强大一个终止操作是 `collect()` ,它接收一个收集器
 | 
			
		||||
| minBy             | Optional\<T>          | 查找流中最小元素的 Optional                                  |
 | 
			
		||||
| reducing          | 规约操作产生的类型    | 对流中所有元素执行归约操作                                   |
 | 
			
		||||
| collectingAndThen | 转换返回的类型        | 先把流中所有元素收集到指定的集合中,再对集合执行特定的操作   |
 | 
			
		||||
| mapping           | Collector<T, A, R>    | 收集前转换映射                                               |
 | 
			
		||||
| groupingBy        | Map<K,List\<T>>       | 对流中所有元素执行分组操作                                   |
 | 
			
		||||
| partitionBy       | Map<Boolean,List\<T>> | 对流中所有元素执行分区操作                                   |
 | 
			
		||||
 | 
			
		||||
collectingAndThen 对比mapping
 | 
			
		||||
 | 
			
		||||
| 方面     | collectingAndThen            | mapping                            |
 | 
			
		||||
| -------- | ---------------------------- | ---------------------------------- |
 | 
			
		||||
| 目的     | 对收集结果应用完成函数。     | 在收集之前转换元素。               |
 | 
			
		||||
| 转换     | 在收集结果上。               | 在元素被收集之前。                 |
 | 
			
		||||
| 使用场景 | 需要对最终收集值进行转换时。 | 需要在收集时转换元素时。           |
 | 
			
		||||
| 参数     | 收集器,完成函数             | 映射函数,收集器                   |
 | 
			
		||||
| 常见用法 | 后处理收集的数据。           | 预处理收集的元素。                 |
 | 
			
		||||
| 示例转换 | 将集合变为不可修改。         | 将元素从一种类型转换为另一种类型。 |
 | 
			
		||||
 | 
			
		||||
使用示例如下:
 | 
			
		||||
 | 
			
		||||
```java
 | 
			
		||||
@@ -386,6 +398,7 @@ stream.collect(Collectors.summarizingInt(x -> x)); // IntSummaryStatistics{count
 | 
			
		||||
stream.collect(Collectors.maxBy((Integer::compareTo))); // Optional[6]
 | 
			
		||||
stream.collect(Collectors.reducing(1, (a, b) -> a * b)); // 等效于 stream.reduce(1, (a, b) -> a * b);
 | 
			
		||||
collect(Collectors.collectingAndThen(Collectors.toSet(), Set::size)); // 先把所有元素收集到Set中,再计算Set的大小
 | 
			
		||||
collect(Collectors.mapping(String::valueOf, Collectors.toList())); //将元素转为字符串并收集
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> 注意:以上每个终止操作只能单独演示,因为对一个流只能执行一次终止操作。并且执行完终止操作后,就不能再对这个流进行任何操作,否则将抛出 `java.lang.IllegalStateException: stream has already been operated upon or closed` 的异常。
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user