## 确定类型
定制collector要实现Collector接口,首先要确定类型
- 待收集元素的类型
- 累加器/accumulate 的类型
- 最终结果的类型
假设要实现这么个收集器:
```java
public class GroupingBy
implements Collector>,Map>>
```
类型分别为:
- T
- Map>
- Map>
## 实现收集器的组件
收集器有4个重要的组件,他们都是函数
- supplier
- accumulator
- combiner
- finisher
### supplier
supplier 用于创建容器.
```java
@Override
public Supplier