在编写算法问题时,我经常看到其他人不穿越数组或列表以手动操作,但可以优雅地解决它。
这是Java8 -Stream的特征,这是Java8提供的抽象概念,使我们能够像上面的代码一样声明数据。
具体而言,它被认为是将其用元素(数组或列表中的元素)对处理的流。这种流程在管道中处理,例如排序,过滤等。
具体来说,让我们讨论流中的这些操作。
分类元素,例如
结果
根据设置条件过滤一些不需要的元素,只要将其从小于或等于5的元素中滤除。
结果
用于获取指定数量的流数量的5个元素:
结果
每个元素像一个函数一样,将每个元素映射到相应的结果,例如正方形:
结果
除了一般的串行处理外,流还可以并行处理数据。只需替换它即可。
在这里,我认为在处理每个操作时是否并行处理每个数据,或者整个管道,每个操作是并行处理的。后者显然串行和并行结果将有所不同。实验后,我发现这是前者,也就是说,在每个操作期间并行处理每个数据。因此,每个操作之间的执行仍在串行执行。
结果
此操作是将电流转换为原始数据表或将电流转换为其他数据表格。它不仅可以转换回集合,还可以将结果收敛为元素。示例如下:
结果
此外,JDK还为开发人员提供了许多收藏家,还可以自定义收藏家。由于我刚刚开始在这里,我不会详细介绍。
它主要用于数值元素,可以轻松获得统计结果,例如最大最小值和平均值。
结果
本文是对流功能的条目探索。实际上有很多内容。定制程度很高,但是了解本文中的这些基本操作和流式思想基本上足以使用一些简单的应用程序。