一文带你学会Stream流的使用

概述

Stream 流是一个用于处理集合数据的 API,它提供了一种简洁而灵活的方式来处理与集合相关的操作。在Java 8中引入的Stream API,使得集合操作更加高效和易于编写。

Stream 流提供了一系列的中间操作和终端操作,可以在不修改源集合的情况下对元素进行过滤、映射、排序、聚合等操作。中间操作返回一个新的流,这样可以进行链式的操作;而终端操作则会产生最终结果或副作用,结束流的处理。

Stream 流具有惰性求值的特点,也就是说在遇到终端操作之前,中间操作不会立即执行,而是等到需要结果时才进行处理。这种特性可以提高性能,并且允许我们以更简洁的方式来处理大量的数据。

除了提供基本的过滤、映射和排序等操作,Stream API 还支持并行处理,可以充分利用多核处理器的性能优势,从而加快数据处理的速度。

总之,Stream 流是一种功能强大的工具,可以帮助我们更轻松地对集合进行操作和处理。通过利用 Stream API,我们可以编写出更简洁、高效并且易于维护的代码。

练习

首先我们先做一个小案例。

需求:

1       把一下为“欧阳”开头的名字存储到集合里

2       把一下为“欧阳”开头并且名字为4个字的存储到集合里

3       打印结果输出

话不说的,直接上代码

package org.example;

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {


        ArrayList<String> list = new ArrayList<>();
        list.add("欧阳锋");
        list.add("欧阳锋峰");
        list.add("奥特锋锋锋");
        list.add("欧锋锋");

  /**
         * 把一下为“欧阳”开头的名字存储到集合里
         */
        ArrayList<String> list1 = new ArrayList<>();
        for (String name : list) {
            if (name.startsWith("欧阳")){
                list1.add(name);
            }

        }


        /**
         * 把一下为“欧阳”开头并且名字为4个字的存储到集合里
         */
        ArrayList<String> list2 = new ArrayList<>();
        for (String name : list2) {
            if (name.length()==3){
                list2.add(name);
            }

        }


        /**
         * 打印结果输出
         */
        for (String name : list2) {
            System.out.println(name);
        }
    }
}

输出结果

欧阳锋

流编程改写

那么流式编程怎么改写尼?

话不多说,直接上代码

package org.example;

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {


        ArrayList<String> list = new ArrayList<>();
        list.add("欧阳锋");
        list.add("欧阳锋峰");
        list.add("奥特锋锋锋");
        list.add("欧锋锋");


        /**
         * 流式编程
         */
        list.stream().
                filter(name->name.startsWith("欧阳")).
                filter(name->name.length()==3).
                forEach(name-> System.out.println(name));
    }
}

代码解析:

按照上图我给大家所标记的地方,大家可以清楚的看到两者区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值