Java8新特性之流式操作

在这里插入图片描述

什么是流式操作

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。

Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。

Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。

这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。

元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。

1.流式操作举例

1.1创建实体类

public class Person {

    private String name;

    private Integer age;

    private Integer score;

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public Integer getAge() {

        return age;

    }

    public void setAge(Integer age) {

        this.age = age;

    }

    public Integer getScore() {

        return score;

    }

    public void setScore(Integer score) {

        this.score = score;

    }

    public Person() {

    }

    public Person(String name, Integer age, Integer score) {

        this.name = name;

        this.age = age;

        this.score = score;

    }

    @Override

    public String toString() {

        return "Person{" +

                "name='" + name + '\'' +

                ", age=" + age +

                ", score=" + score +

                '}';

    }

}

1.2 传统的对象初始化方式

public class Program {

    public static void main(String[] args) {

        //使用构造器设置对象信息

//        Person xiaomign = new Person("小明", 28, 90);

        //使用getter、setter方式设置对象信息

        Person xiaoming = new Person();

        xiaoming.setName("小明");

        xiaoming.setAge(18);

        xiaoming.setScore(90);

    }

}

1.3 使用流式操作初始化对象

1.3.1 修改实体类
public class Person {

    private String name;

    private Integer age;

    private Integer score;

    public String getName() {

        return name;

    }

    public Person setName(String name) {

        this.name = name;

        return this;

    }

    public Integer getAge() {

        return age;

    }

    public Person setAge(Integer age) {

        this.age = age;

        return this;

    }

    public Integer getScore() {

        return score;

    }

    public Person setScore(Integer score) {

        this.score = score;

        return this;

    }

    public Person() {

    }

    public Person(String name, Integer age, Integer score) {

        this.name = name;

        this.age = age;

        this.score = score;

    }

    @Override

    public String toString() {

        return "Person{" +

                "name='" + name + '\'' +

                ", age=" + age +

                ", score=" + score +

                '}';

    }

}
1.3.2 使用流式操作
//流式操作

xiaoming.setName("小明").setAge(20).setScore(100);

2.集合的流式操作

集合的流式操作是Java8的一个新特性,流式操作不是一个数据结构,不负责任何的数据存储,它更像是一个迭代器,可以有序的获取数据源中的每一个数据,并且可以对这些数据进行一些操作。流式操作的每一个方法的返回值都是这个流的本身。

2.1 流式操作的三个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值