java8中的流(Stream)

本文详细介绍了Java8中的Stream API,包括Stream的基本流程、操作特性、操作类型和执行顺序。讲解了如何获取流,如从集合、数组中生成流,以及中间操作如filter、map、distinct、limit和skip的使用。此外,还涵盖了终端操作如findAny、findFirst、anyMatch和forEach。最后,介绍了Collect()收集操作及其在数据处理中的应用。
摘要由CSDN通过智能技术生成

流式编程爱 撸码就是快,流式编程好 代码传家宝

Stream API 概念:

Stream 流处理,首先要澄清的是 java8 中的 Stream 与 I/O 流 InputStream 和 OutputStream 是完全不同的概念。
Stream 机制是针对集合迭代器的增强。流允许你用声明式的方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。

1.流的基本流程

1.准备一个数据源(可以是集合,数组,I/O channel, 产生器generator 等)

2.一个中间操作链,形成一条流的流水线

3.一个终端操作,执行流水线,并生成结果

2.流的操作特性:

1.stream不存储数据

2.stream不改变源数据

3.stream不可重复使用

为了体现流的特性,我准备了一组对应的测试用例:

//1.流的生成 与不可重复使用
    @Test
    public void test1(){
   
        // 中间节点--> 懒节点
        // 区分
        appleStore.stream()
                .peek(a-> System.out.println(a.getColor()))//执行一个函数(中间节点)
                .peek(a-> System.out.println(a.getWeight()))
                .toArray();//终值节点
        //一条流走到底 不能分叉
        Stream<Apple> stream1 = appleStore.stream();
        Stream<Apple> stream2 = stream1.peek(a -> System.out.println("123"));
        //Stream<Apple> stream3 = stream1.peek(a -> System.out.println("123"));
    }
@Test
    public void test2(){
   
        // 上个节点影响下个节点
        /*
        * 影响方式:
        * 1.过滤
        * 2.转换
        * 3.去重*/
        appleStore.stream()
                .filter(a-> a.getColor().equals("green"))
                //.map(a->a.getColor())
                //.distinct()
                .peek(a-> System.out.println(a.getColor()+":"+a.getWeight()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值