Stream API的使用

news2024/12/25 9:07:01

使用Stream API对集合中的数据进行操作,就类似使用SQL语句对数据库执行查询

  1. Stream不会存储数据
  2. Stream不会改变源对象,而是返回一个持有结果的新Stream
  3. Stream是延迟执行的,只有在需要结果的时候才执行,即只有执行终止操作,才会执行中间的所有操作,然后返回最终结果
  4. Stream一旦执行终止操作,就不能再执行其他中间操作和终止操作了。
  5. 使用场景:可以用于Java处理非关系型数据库操作,如MongDb,Redis

Stream对集合的操作有:排序、查找、过滤、遍历、映射等,是面向CPU的;
使用步骤:

一、创建Stream

1、集合.stream()返回一个Stream对象
串行流 如:

	ArrayList<Object> list = new ArrayList<>();
    Stream<Object> stream = list.stream();

并行流 如:

	Stream<Object> stream = list.parallelStream();

2、Arrays.stream(数组) 返回一个Stream对象

	Integer[] integers = new Integer[10];
    Stream<Integer> stream = Arrays.stream(integers);
    int[] ints = new int[10];
    IntStream stream = Arrays.stream(ints);

3、Stream.of()返回一个Stream对象

	Stream<T> stream = Stream.of(T... parameters);
	Stream<T> stream = Stream.of(T t);

、 一系列中间操作:常与四大核心函数接口配合使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

映射常与四大核心函数接口的Function<T,R>函数型接口配合使用,返回自己想得到的数据 过滤/筛选
常与四大核心函数接口的Predicate<T.>判断型接口配合使用
遍历/输出常与四大核心函数接口的Consumer<T.>消费型接口配合使用

三、终止操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Collectors类提供了很多返回一个集合的静态方法,如:

collect(Collectors.toList())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离散数学_十章-图 ( 2 ):图的术语和几种特殊的图

&#x1f4f7;10.2 图的术语和几种特殊的图 1. 基本术语1.1 邻接&#xff08;相邻&#xff09;1.2 邻居1.3 顶点的度1.4 孤立点1.5 悬挂点例题 2. 握手定理3. 握手定理的推论4. 带有有向边的图的术语4.1 邻接4.2 度——出度 和 入度4.3 例题&#xff1a; 5. 定理&#xff1a;入…

PHP 反序列化漏洞

PHP反序列化漏洞在实际测试中出现的频率并不高&#xff0c;主要常出现在CTF中。 PHP序列化概述 PHP序列化函数&#xff1a; serialize&#xff1a;将PHP的数据&#xff0c;数组&#xff0c;对象等序列化为字符串unserialize&#xff1a;将序列化后的字符串反序列化为数据&…

chatgpt赋能python:Python单词库的重要性

Python单词库的重要性 Python是一种高级编程语言&#xff0c;被广泛用于应用程序开发、网络编程、数据科学和人工智能开发等领域。而在Python编程中&#xff0c;单词库(或词典)的重要性不言而喻。单词库就是存放Python程序中经常使用的关键字、方法名、函数名等词汇的地方。本…

SpringBoot --- 实用篇

一、热部署 1.1、概念 什么是热部署&#xff1f;简单说就是你程序改了&#xff0c;现在要重新启动服务器&#xff0c;嫌麻烦&#xff1f;不用重启&#xff0c;服务器会自己悄悄的把更新后的程序给重新加载一遍&#xff0c;这就是热部署。 ​ 热部署的功能是如何实现的呢&…

谷歌浏览器被2345劫持

方法1&#xff1a; 打开控制面板的卸载程序&#xff0c;搜索2345&#xff0c;把那个恶心的“安全组件-2345”卸载掉&#xff01;&#xff01; 这个方法比修改 host 以及注册表要好使地多&#xff01; 参考网址&#xff1a; 【小技巧】修复chrome被2345劫持 方法2&#xff1a; …

Alma Linux 9.2、Rocky Linux 9.2现在是RHEL 9.2的替代品

随着Red Hat Enterprise Linux (RHEL) 9.2的发布&#xff0c;Alma Linux 9.2和Rocky Linux 9.2成为了RHEL 9.2的备选替代品。这两个Linux发行版旨在提供与RHEL兼容的功能和稳定性&#xff0c;以满足那些需要企业级操作系统的用户需求。本文将详细介绍Alma Linux 9.2和Rocky Lin…

nginx反向代理缓存

背景 nginx 一般用来做反向代理和负载均衡&#xff0c;将客户端请求发送到后端的 jetty&#xff0c;并将 jetty 的响应发送给客户端。后端的 jetty 通常不止一个&#xff0c;nginx 根据配置来选择其中一个 jetty&#xff0c;比较常见的选择策略是轮询。示意图如下 启动缓存支…

oracle19c介绍和安装

目录 一、版本 &#xff08;1&#xff09;历史 &#xff08;2&#xff09;11g和12c管理方式区别 11g 12C &#xff08;3&#xff09;各个版本对操作系统要求 二、分类 &#xff08;1&#xff09;分为桌面类和服务器类 &#xff08;2&#xff09;分为企业版和标准版 三…

基于遗传算法的BP神经网络优化算法(matlab实现)

1 理论基础 1.1 BP神经网络概述 BP网络是一类多层的前馈神经网络。它的名字源于在网络训练的过程中&#xff0c;调整网络的权值的算法是误差的反向传播的学习算法&#xff0c;即为BP学习算法。BP算法是Rumelhart等人在1986年提出来的。由于它的结构简单&#xff0c;可调整的…

个人网站实现微信扫码登录

⭐个人网站实现微信扫码登录 &#x1f948;效果图 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kzSrNgiv-1685034480658)(https://img.ggball.top/picGo/动画.gif)] &#x1f4d7;开发背景 为什么想用微信扫码登录呢&#xff1f; 起因是自己开发…

【CH32】| 02——常用外设 | GPIO

系列文章目录 【CH32】| 00——开发环境搭建 【CH32】| 01——新建工程 | 下载 | 运行 |调试 【CH32】| 02——常用外设 | GPIO 失败了也挺可爱&#xff0c;成功了就超帅。 文章目录 前言1. GPIO简介2. IO口的内部结构框图保护二极管上下拉电阻施密特触发器两个MOS管输出寄存器…

chatgpt赋能python:Python加速循环的执行方法详解

Python 加速循环的执行方法详解 Python是一门非常流行的编程语言&#xff0c;它可以在很多领域应用&#xff0c;比如Web开发、数据分析、机器学习等等。然而&#xff0c;Python执行速度较慢&#xff0c;特别是在循环语句中&#xff0c;代码执行效率会大打折扣。在本文中&#…

【基于ROS Melodic环境安装rosserial arduino】

【基于ROS Melodic环境安装rosserial arduino】 1. 简介2. 安装2.1 Ubuntu下的Arduino IDE安装2.2 Ubuntu下rosserial arduino软件安装2.3 安装ros_lib到Arduino IDE开发环境 3. 将ros_lib配置到 Arduino 环境库中4. 使用helloword5. 实验验证6.总结 1. 简介 这个教程展示如何…

Linux系统初始化命令的备忘单,Linux运维工程师收藏!

在管理和维护Linux系统时&#xff0c;有一些常用的命令可以帮助您进行系统初始化和配置。这些命令涵盖了各种任务&#xff0c;包括系统设置、用户管理、软件安装和网络配置等。 本文将为您提供一个Linux系统初始化命令的备忘单&#xff0c;以便在需要时方便查阅和使用。 系统设…

chatgpt赋能python:Python动画制作指南:从入门到精通

Python动画制作指南&#xff1a;从入门到精通 Python作为一种易学易用的编程语言&#xff0c;在数据分析、机器学习等领域已经得到广泛应用。但是你知道吗&#xff1f;Python还可以用来制作动画&#xff01;本文将为你介绍如何用Python制作动画&#xff0c;从入门到精通&#…

chatgpt赋能python:Python写计算器:从入门到精通

Python写计算器&#xff1a;从入门到精通 简介 计算器无疑是计算机编程中最基本且实用的工具之一。Python 作为一门易于学习且功能强大的编程语言&#xff0c;能够轻松实现计算器的功能。在本文中&#xff0c;我们将介绍如何使用 Python 编写一个简单的计算器。 如何实现&am…

chatgpt赋能python:Python的封装:提高代码的可维护性和可复用性

Python的封装&#xff1a;提高代码的可维护性和可复用性 在软件开发领域中&#xff0c;封装是一种重要的概念。它被用于隐藏程序的实现细节&#xff0c;使得程序的功能变得更加易于使用和维护。在Python编程中&#xff0c;封装是一种被广泛使用的技术&#xff0c;可以帮助你提…

Linux 信号知识点总结

对于 Linux来说&#xff0c;实际信号是软中断&#xff0c;许多重要的程序都需要处理信号。信号&#xff0c;为 Linux提供了一种处理异步事件的方法。比如&#xff0c;终端用户输入了 ctrlc 来中断程序&#xff0c;会通过信号机制停止一个程序。信号概述 1.信号的名字和编号: 每…

JavaSE_day38(异常分类,自定义异常,File介绍,方法使用,相对路径与绝对路径概念以及注意的点)

1 A.java * 异常的分类&#xff1a; 运行时期异常:RuntimeException的子类就是运行时期异常&#xff0c;在编译时期可以自由选择处理或者不处理 编译时期异常:是Exception的子类&#xff0c;非RuntimeExcpetion的子类&#xff0c;在编译时期必须处理 public c…

注意力机制(一)SE模块(Squeeze-and-Excitation Networks)

Squeeze-and-Excitation Networks&#xff08;压缩和激励网络&#xff09; 论文地址&#xff1a;Squeeze-and-Excitation Networks 论文中文版&#xff1a;Squeeze-and-Excitation Networks_中文版 代码地址&#xff1a;GitHub - hujie-frank/SENet: Squeeze-and-Excitation Ne…