这个方法在Stream类里定义
需要结合动态规约理解
R collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner)
supplier:生成用来保存结果的容器
accumulator:处理输入数据,数据会经过它的处理后保存到容器中
combiner:把产生的结果拼接到另一个容器中(用于多线程并行)
返回一个集合
ListCollector 解析asList = stringStream.collect(ArrayList::new, ArrayList::add, ArrayList::addAll); String concat = stringStream.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append).toString();
R collect(Collector super T,A,R> collector)
Collector把三个参数整合在了里面
例子注意如果用Collectors.groupingBy(),返回值是Map
//拼接字符串为一个长字符串
List asList = stringStream.collect(Collectors.toList());
//根据居住城市进行分类
Map> peopleByCity
= personStream.collect(Collectors.groupingBy(Person::getCity));
//嵌套分类
Map>> peopleByStateAndCity
= personStream.collect(Collectors.groupingBy(Person::getState,
Collectors.groupingBy(Person::getCity)));



