栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础-Stream流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础-Stream流

第一章 Stream流

Stream(流)是一个来自数据源的元素队列
        元素是特点类型的对象,形成一个队列。Java中的Stream并不会存储元素。
        数据源:流的来源。可以是集合,数组等。

Stream操作的两个基础的特征:

        Pipelining:中间操作都会返回流对象本身。(优势:延迟执行和短路)。

        内部迭代:Stream提供了内部迭代的方式,流可以直接调用遍历方法。

当使用一个流的时候,通常包括三个基本步骤:获取一个数据源 -》数据转换 -》执行操作获取想要的结构。每次转换原有Stream 对象不改变,返回一个新的Stream 对象。

获取流

java.util.stream.Stream 是Java 8新加入的最常用的流接口。

1. 根据Collection 获取流

        java.util.Collection 接口中新加入了default 方法stream 用来获取流,所以其所有实现类均可获取流。

2. 根据Map 获取流

        Map需要分key、value、entry,再获取流。

3. 根据数据获取流

        如果使用的不是集合或映射而是数组,Stream 接口中提供了静态方法 of,获取流。

Stream 流的常用方法:

forEach:逐一处理。该方法接收一个Consumer 接口函数,会将每一个流元素交给该函数进行处理。(用来遍历Stream流中的数据)

void forEach(Consumer action);

filer:过滤。可以通过filter 方法将一个流转换成另一个子集流。该接口接收一个Predicate 函数式接口参数(可以是一个Lambda或方法引用)作为筛选条件。(用于对Stream流中的数据进行过滤)

Stream filter(Predicate predicate);

map:映射。如果需要将Stream流中的元素映射到另一个流中,可以使用map方法。该接口需要一个Function 函数式接口参数,可以将当前流中的T类型数据转换为另一种R类型的流。

 Stream map(Function mapper);

count:统计个数。用于统计Stream 流中的元素个数。该方法返回一个long值代表元素个数。

long count();

 limit:取用前几个。limit 方法可以对流进行截取,只取用前几个。参数是一个long型,如果集合当前长度大于参数则进行截取;否则不进行操作。

Stream limit(long maxSize);

  skip:跳过前几个。如果希望跳过前几个元素,可以使用skip 方法获取一个截取之后的新Stream流。如果流的当前长度大于n,则跳过前n个;否则将会得到一个长度为0的空流。

Stream skip(long n);

  concat:组合。如果有两个流,希望合并成为一个流,那么可以使用Stream 接口中的静态方法concat。

static  Stream concat(Stream a, Stream b);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号