一文掌握Java8新特性Stream流的概念和使用Java8新特性全面

本篇文章给大家带来了关于java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。

推荐学习:《java视频教程》

当我们说到流的时候大家就会很容易联想到IO流,以为Stream流也是IO流,其实不然。Stream流是Java8中引入的一个全新的概念,用于解决已有集合类库既有的一些弊端。既然要学习Stream流,我们就要暂时忘记IO流的传统概念。我们今天就从Stream流的概念、特点、作用、使用方法等方法详解一下Stream流,那我就一起往下看吧!

Stream流的概念

为什么要使用Stream流?

a916621113eb4b6abbe89fa20577b99e.jpeg

Stream流的思想类似于一个生产车间的流水线。当需要对多个元素进行操作特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步驱方案,然后再按照方案去执行它。

d5ad1f84d93347d2a729cbc9ad8bcc50.jpeg

Stream的两个基础的特征:

当使用一个流的时候,通常包括三个基本步骤:获取一个数据源source)→数据转换一执行操作获取想要的结果,每次转换原有Stream对象不改变,返回一个新的Stream对象可以有多次转换),这就允许对其操作可以像链条一样排列,变成一个管道。

Stream流的获取

通过Collection集合获取

2.Stream接口的静态方法of获取

stream流的常用方法

stream的常用方法分为两类:

cf63994dd47c44b9969ab8e44e34fec2.jpeg

以上是一些stream流的常用方法,下面我们就依次学习一下这些方法的使用。

forEach遍历方法

filter过滤方法

map映射方法(转换)

count统计元素个数方法

limit截取流元素方法

skip跳过元素方法

concat:合并方法

Stream流的练习

首先创建Person对象类

public class Person {

private String name;

public Person) {

super);

}

public PersonString name) {

super);

this.name = name;

}

public String getName) {

return name;

}

public void setNameString name) {

this.name = name;

}

@Override

public String toString) {

return "Person [name=" + name + "]";

}

}

然后再根据习题要求用Stream流进行过滤

// 第一支队伍

// 创建集合

ArrayList<String> one = new ArrayList<>);

// 添加元素

one.add"迪丽热巴");

one.add"宋远桥");

one.add"苏星河");

one.add"石破天");

one.add"石中玉");

one.add"老子");

one.add"庄子");

one.add"洪七公");

//1.第一个队伍只要名字为3个字的成员姓名:存储到一个新集合中。

//2.第一个队伍筛选之后只要前3个人;存储到一个新集合中。

Stream<String>oneStream=one.stream).filtername->name.length)==3).limit3);

// 第二支队伍

// 创建集合

ArrayList<String> tow = new ArrayList<>);

// 添加元素

tow.add"古娜力扎");

tow.add"张无忌");

tow.add"赵丽颖");

tow.add"张三丰");

tow.add"尼古拉斯赵四");

tow.add"张天爱");

tow.add"张二狗");

//3.第二个队伍只要姓张的成员姓名;存储到一个新集合中。

//4.第二个队伍筛选之后不要前2个人;存储到一个新集合中。

Stream<String>towStream=tow.stream).filtername->name.startsWith"张")).skip2);

//5.将两个队伍合并为一个队伍;存储到一个新集台中。

//6.根据姓名创建Person对象:存储到一个新集合中,

//7.打印整个队伍的Person对象信息。

Stream.concatoneStream,towStream).mapname->new Personname)).forEachp->System.out.printlnp));

最后运行结果

fd3335f3e83a4c99a87fe1b235bcd308.jpeg

总结

最后,今天的内容就学到这里啦。主要熟悉和明白Stream流的一个思想概念、会使用Stream流的获取、和熟练掌握Stream流的一些常用方法。

c6ecc99cdfbb45cb82a75bdca69293a5.jpeg

推荐学习:《java视频教程》

以上就是一文掌握Java8新特性Stream流的概念和使用的详细内容,更多请关注风君子博客其它相关文章!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注