美文网首页
Collector收集器列表

Collector收集器列表

作者: 柚子过来 | 来源:发表于2018-02-05 11:20 被阅读0次

工厂方法:toList /toSet
返回类型:List<T>/Set<T>
作用:把流中所有项目收集到一个 List/Set
使用示例: List<Dish> dishes = menuStream.collect(toList());

工厂方法: toCollection
返回类型:Collection<T>
作用:把流中所有项目收集到给定的供应源创建的集合
使用示例: Collection<Dish> dishes = menuStream.collect(toCollection(),ArrayList::new);

工厂方法:counting
返回类型:Long
作用:计算流中元素的个数
使用示例: long howManyDishes = menuStream.collect(counting());

工厂方法:summingInt /averagingInt
返回类型:Integer/double
作用:对流中项目的一个整数属性求和/求平均值
使用示例: int totalCalories =menuStream.collect(summingInt(Dish::getCalories));

工厂方法:joining
返回类型:String
作用:连接对流中每个项目调用 toString 方法所生成的字符串
使用示例: String shortMenu =menuStream.map(Dish::getName).collect(joining(", "));

工厂方法:minBy/maxBy
返回类型:Optional<T>
作用:一个包裹了流中按照给定比较器选出的最大/最小元素的 Optional ,或如果流为空则为 Optional.empty()
使用示例:Optional<Dish> fattest =menuStream.collect(maxBy(comparingInt(Dish::getCalories)));

工厂方法:reducing
返回类型:归约操作产生的类型
作用:从一个作为累加器的初始值开始,利用 BinaryOperator 与流中的元素逐个结合,从而将流归约为单个值。
使用示例: int totalCalories =menuStream.collect(reducing(0, Dish::getCalories, Integer::sum));

工厂方法:groupingBy
返回类型:Map<K, List<T>>
作用:根据项目的一个属性的值对流中的项目作问组,并将属性值作为结果 Map 的键
使用示例: Map<Dish.Type,List<Dish>> dishesByType =menuStream.collect(groupingBy(Dish::getType));

工厂方法:partitioningBy
返回类型:Map<Boolean,List<T>>
作用:根据对流中每个项目应用谓词的结果来对项目进行分区(只有true和false两个区)
使用示例: Map<Boolean,List<Dish>> vegetarianDishes =
menuStream.collect(partitioningBy(Dish::isVegetarian));

相关文章

网友评论

      本文标题:Collector收集器列表

      本文链接:https://www.haomeiwen.com/subject/jqybzxtx.html