本文小编为大家详细介绍“Java8新特性Stream流怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java8新特性Stream流怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Stream流的思想类似于一个生产车间的流水线。当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步驱方案,然后再按照方案去执行它。Stream(流)是一个来自数据源的元素队列元素是 特定类型的对象,形成一个队列。lava中的Stream并不会存储元素,而是按需计算。数据源 流的来源。可以是集合,数组等。Pipelining:中间操作都会饭回流对象本身。这样多个操作可以事联成一个管道,如同流式风格(fluentstyle)。这样做可以对操作进行优化,比如延迟执行(laziness)和短路(short-circuiting)。内部迭代:以前对集合遍历都是通过iterator或者增强for的方式显式的在集合外部进行迭代,这叫做外部迭代。Stream提供了内部迭代的方式,流可以直接调用遍历方法。当使用一个流的时候,通常包括三个基本步骤:获取一个数据源(source)→数据转换一执行操作获取想要的结果,每次转换原有Stream对象不改变,返回一个新的Stream对象(可以有多次转换),这就允许对其操作可以像链条一样排列,变成一个管道。获取流的常用方式有2种:1.通过Collection集合获取2.Stream接口的静态方法of获取所有的Collection集合都可以通过stream默认方法获取流Stream接口的静态方法of可以获取数组对应的流。参数是一个可变参数,那么我们就可以传递一个数组延迟方法:返回值类型仍然是Stream接口自身类型的方法,因此支持链式调用。(除了终结方法外,其余方法均为延迟方法。)终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持类似StringBuilder那样的链式调用。以上是一些stream流的常用方法,下面我们就依次学习一下这些方法的使用。该方法接受一个Consumer接口函数,会将每一个流元素交给函数进行处理。Consumer接口是一个消费性的函数式接口,可以传递lambda表达式,消费数据。foeeach方法,用来遍历流中的数据,是一个终结方法,遍历之后就不能使用流中的其他方法。基本使用用于对Stream流中的数进行过滤。filter方法的参数Predicatehi一个函数式接口,所以可以传递lambda表达式,对数据进行过滤。可以通过filter方法将一个转换过滤为下一个流,如下图:上面这个图把一些不也一样的元素,用filter方法进行过滤,然后成为新的流。
基本使用如果需要将流中的元素转换到另一个流中,可以使用map方法。该接口需要一个Funtion函数式接口参数,可以将当前流中的T类型数据类型转换为另一种R类型的数据流,如下图:上面的图将不同元素的数据转换成用一种类型的元素。
基本使用用于统计Stream流中的元素个数,count方法是一个终结方法,返回值是一个Long类型的整数。所以不能再继续调用Stream流中的其他方法了基本使用Limit方法可以对流进行截取,只取用前n个。参数是一个long型,如果集合当前长度大于参数则进行截取,否则不进行操作。limit方法是一个延迟方法,只是对流中的免费云主机域名元素进行截取,返回一个新的流,使用可以继续调用stream流中的其他方法。 基本使用如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流,如果流的当前长度大于n,则跳过前n个;否则将会得到一个长度为0的流。基本使用用于把流组合到一块。如果有两个流,希望合并成为一个流,就可以使用concat方法基本使用最后,我们通过下面的练习来巩固一下上面所学的内容。现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)依次进行以下若干操作步骤:1.第一个队伍只要名字为3个字的成员姓名:存储到一个新集合中。2.第一个队伍筛选之后只要前3个人;存储到一个新集合中。3.第二个队伍只要姓张的成员姓名;存储到一个新集合中。4.第二个队伍筛选之后不要前2个人;存储到一个新集合中。5.将两个队伍合并为一个队伍;存储到一个新集台中。6.根据姓名创建Person对象:存储到一个新集合中,7.打印整个队伍的Person对象信息。
示例:第一支队伍:迪丽热巴、宋远桥、苏星河、石破天、石中玉、老子、庄子、洪七公
第二支队伍:古娜力扎、张无忌、赵丽颖、张三丰、尼古拉斯赵四、张天爱、张二狗首先创建Person对象类然后再根据习题要求用Stream流进行过滤1.第一个队伍只要名字为3个字的成员姓名:存储到一个新集合中。2.第一个队伍筛选之后只要前3个人;存储到一个新集合中。3.第二个队伍只要姓张的成员姓名;存储到一个新集合中。4.第二个队伍筛选之后不要前2个人;存储到一个新集合中。5.将两个队伍合并为一个队伍;存储到一个新集台中。6.根据姓名创建Person对象:存储到一个新集合中,7.打印整个队伍的Person对象信息。读到这里,这篇“Java8新特性Stream流怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。
本篇内容介绍了“纯css如何实现三角形”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!css实现三角的原理:首先确定底边是哪个方向,并设置哪个方向有颜色值;然后将…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。