四Collectors

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四Collectors相关的知识,希望对你有一定的参考价值。

参考技术A 将Stream所有元素转化成list集合

将Stream所有元素转化成set集合。

使用toSet 和toList 不能自定义Collection实现,toCollection可以指定

将Stream元素转成Map实例,需要keyMapper 和valueMapper

将Stream所有元素收集后执行指定动作

根据指定方式链接元素

计量Stream的元素个数

返回统计信息

平均信息

求和信息

返回最大或最小元素

根据属性分组,将结果存储在Map中。

跟 groupingBy 相似,但是特殊在key是Boolean类型,value是Collecitons

将最大和最小元素使用依次操作就可以实现

(1)需要实现的接口

public interface Collector<T, A, R> ...

T -可供收集的物体类型,

A -可变累加器对象的类型,

R -最终结果的类型。

(2)例子

(3)由于需要用于内部收集操作处理的可变集合,所以不能使用 不变集 为此,我们需要使用其他一些可变集合或任何其他类,这些类可以为我们临时对象。 在这种情况下,我们将继续使用 ImmutableSet.Builder 现在我们需要实现5种方法:

(4)详解:

supplier() 方法 返回 一个Supplier实例 用来生成一个空的accumulator 实例

accumulator()方法 返回一个函数实例用来在一个实例中添加新的元素

combiner() 方法返回一个函数用来合并两个实例

finisher() 用来转换类型

characteristics() 方法提供附加信息流

(5)实现类如下

(6)测试:

java Collectors.groupingBy(),Collectors.mapping() - grupowanietiveługpola+przekształcenieobiektugrup

public interface Foo {
  public String getGroup();
  public Bar getBar();
}

//---

final List<Foo> foos = //---
final Map<String,List<Bar>> map = foos
    .stream()
    .collect(
        Collectors.groupingBy(
            Foo::getGroup,
            Collectors.mapping(
                Foo::getBar,
                Collectors.toList()
            )
        )
    );

以上是关于四Collectors的主要内容,如果未能解决你的问题,请参考以下文章

阿里巴巴和四十大盗英文原文

风云四号卫星运行的周期方向

冀教版四年级下册语文期末试题

医学四视图-002-四视图实现

基于四元数的 3D 相机应该累积四元数还是欧拉角?

vbscript 检测四位数有逗号,超过四位数无逗号的情况