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

Java中Stream流计算

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

Java中Stream流计算

我们首先看一下JDK文档中对Stream的介绍

那么Stream到底是什么了?

Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。
“集合讲的是数据,流讲的是计算!”

Stream 的特点

Stream 自己不会存储元素。Stream 不会改变源对象,相反,他们会返回一个持有结果的新Stream。Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。

Stream数据流的基本操作

代码测试

在这之前你有必要先了解四大函数式接口,因为Stream的底层就是这些函数式接口。

User实体

package com.zhang.stream;

public class User {
    private int id;
    private String name;
    private int age;

    public User() {
    }

    public User(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}

Stream流

package com.zhang.stream;


import java.util.Arrays;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        User u1 = new User(1, "a", 20);
        User u2 = new User(2, "b", 25);
        User u3 = new User(3, "c", 27);
        User u4 = new User(4, "d", 21);
        User u5 = new User(5, "e", 22);

        //集合就是存储
        List users = Arrays.asList(u1, u2, u3, u4, u5);





        //计算交给Stream
        // 链式编程
        users.stream()
                .filter(u->{return u.getId()%2==0;})
                .filter(u->{return u.getAge()>20;})
                .map(u->{return u.getName().toUpperCase();})
                .sorted((uu1,uu2)->{return uu2.compareTo(uu1);}) // //sorted() 自然排序,正排序 D->E
                .limit(1)
                .forEach(System.out::println);



    }
}

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

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

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