当前位置: 首页 > news >正文

java新特性(Stream API)

什么是 Stream API?

       Stream API 是 Java 8 引入的一个用于对集合数据进行函数式编程操作的强大的库。它允许我们以一种更简洁、易读、高效的方式来处理集合数据,可以极大提高 Java 程序员的生产力,是目前为止对 Java 类库最好的补充。

  Stream API 的核心思想是将数据处理操作以函数式的方式链式连接,以便于执行各种操作,如过滤、映射、排序、归约等,而无需显式编写传统的循环代码

为什么要用 Stream API?

     1、简洁和可读性:Stream API 的链式操作使代码更加简洁、可读。

     2、不可变性:Stream 操作不会修改原始数据,而是创建一个新的 Stream,确保了原始数据的不可变性,有助于并发编程。

     3、惰性求值:Stream 操作是惰性的,只有在调用终端操作时才会触发中间操作的执行,提高了性能,因为只处理需要的数据

     4、并行处理:Stream API 支持并行处理数据,可以充分利用多核处理器,提高性能。

     5、更高的效率:使用 Stream API 可以更快速地编写代码,因为它减少了样板代码的编写,同时提供了丰富的操作。

如何创建呢?

      使用集合的Stream()方法

List<String> list1 = Arrays.asList("zhangsan","lisi","wangwu","lisi");
Stream<String> stream1 = list1.stream();

      使用数组

String[] str = {"张三","李四","王五","李六"};
Stream<String> stream = Arrays.stream(array);

     使用Stream.of()方法创建

Stream<String> stringStream = Stream.of("张三", "李四", "王五", "李六");

Stream中的方法:

     中间操作:

             中间操作是一系列的操作,对数据源的数据进行处理,例如过滤、映射、排序、去重等等。注意这些操作不会立即执行,而是构建一个操作链。下表是 Stream 中常用中间操

相关文章:

  • 【RuoYi】使用代码生成器完成CRUD操作
  • 香橙派OrangePi AIpro,助力国产AIoT迈向新的台阶!
  • 阿里开源React应用动效解决方案:ant-motion
  • C语言#include<>和#include““有什么区别?
  • 【算法】位运算算法——丢失的数字
  • Flutter 中的 BaseLine 小部件:全面指南
  • Linux快速定位日志 排查bug技巧和常用命令
  • 06_知识点总结(JS高级)
  • 基于FPGA实现LED的闪烁——HLS
  • AURIX TC3xx单片机介绍-启动过程介绍2
  • 他用AI,抄袭了我的AI作品
  • C#--WPF自定义控件模板示例
  • mysqlbinlog解析
  • 数据分析之统计学基础
  • debian 常用命令
  • CSS 三角实现
  • css属性的继承、初识值、计算值、当前值、应用值
  • JavaScript实现分页效果
  • javascript数组去重/查找/插入/删除
  • js面向对象
  • LeetCode算法系列_0891_子序列宽度之和
  • log4j2输出到kafka
  • maya建模与骨骼动画快速实现人工鱼
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • vue-router的history模式发布配置
  • Windows Containers 大冒险: 容器网络
  • 创建一个Struts2项目maven 方式
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 利用DataURL技术在网页上显示图片
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 我是如何设计 Upload 上传组件的
  • 正则表达式
  • 7行Python代码的人脸识别
  • AI算硅基生命吗,为什么?
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​Linux·i2c驱动架构​
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (003)SlickEdit Unity的补全
  • (03)光刻——半导体电路的绘制
  • (C++17) std算法之执行策略 execution
  • (六)vue-router+UI组件库
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (四)Linux Shell编程——输入输出重定向
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)Dubbo快速入门、介绍、使用
  • .NET Core Web APi类库如何内嵌运行?
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET/C# 使用反射注册事件
  • .Net的C#语言取月份数值对应的MonthName值
  • .net快速开发框架源码分享
  • .net实现客户区延伸至至非客户区
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .NET中使用Protobuffer 实现序列化和反序列化
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择