Java-- Stream流

感受stream流

代码

package demo1;import javax.naming.Name;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class StreamDemo1 {public static void main(String[] args) {ArrayList<String> list1 = new ArrayList<>();list1.add("张强");list1.add("张无忌");list1.add("周芷若");list1.add("赵敏");list1.add("张三丰");list1.stream().filter(name ->name.startsWith("张")).filter(name ->name.length() ==3).forEach(name -> System.out.println(name));}
}

运行效果

Stream流的作用

结合了Lambda表达式,简化集合、数组的操作

使用步骤

1.先得到一条Stream流(流水线),并把数据放上去

2.使用中间方法对流水线上的数据进行操作
3.使用终结方法对流水线上的数据进行操作

代码01

package demo1;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class StreamDemo2 {public static void main(String[] args) {ArrayList<String> list =new ArrayList<>();Collections.addAll(list,"a","b","c","d","e");list.stream().forEach(s -> System.out.println(s));}
}
运行效果


代码02

package demo1;import java.util.HashMap;
import java.util.stream.Stream;public class StreamDemo3 {public static void main(String[] args) {HashMap<String,Integer> hm = new HashMap<>();hm.put("aaa",111);hm.put("bbb",222);hm.put("ccc",333);hm.put("ddd",444);//第一种获取stream流hm.keySet().stream().forEach(s-> System.out.println(s));//第二种获取stream流hm.entrySet().stream().forEach(s ->System.out.println(s));}
}
运行结果

代码03

package demo1;import java.util.Arrays;public class StreamDemo4 {public static void main(String[] args) {int[] arr1= {1,2,3};String[] arr2 ={"a","b","c"};Arrays.stream(arr1).forEach(s ->System.out.println(s));Arrays.stream(arr2).forEach(s ->System.out.println(s));}
}
运行效果

代码04

kage demo1;import java.util.stream.Stream;public class StreamDemo5 {public static void main(String[] args) {Stream.of(1,2,3,4).forEach(s ->System.out.println(s));Stream.of("a","b","c").forEach(s ->System.out.println(s));}
}
运行效果

stream流的中间方法

 代码

package demo2;import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;public class a2 {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();Collections.addAll(list,"张三-100","王五-200","李四-100");list.stream().map(s -> Integer.parseInt(s.split("-")[1])).forEach(s -> System.out.println(s));}
}

运行结果

 stream流的终极方法

代码

package demo2;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;public class a3 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();Collections.addAll(list ,"路人甲","张三","李四","王五");long count = list.stream().count();System.out.println(count);String[] arr2 = list.stream().toArray(value -> new String[value]);System.out.println(Arrays.toString(arr2));}
}

运行效果

收集方法collect

package demo2;import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class a {public static void main(String[] args) {ArrayList<String> list =new ArrayList<>();Collections.addAll(list,"张三-男-1","李四-男-2","王五-女-3");//收集List集合当中男性List<String> newlist1 = list.stream().filter(s ->"男".equals(s.split("-")[1])).collect(Collectors.toList());System.out.println(newlist1);//收集Map集合中的男性Set<String> newList2 = list.stream().filter(s ->"男".equals(s.split("-")[1])).collect(Collectors.toSet());System.out.println(newList2);}
}

总结

1.Stream流的作用
结合了Lambda表达式,简化集合、数组的操作
2.Stream的使用步骤
获取Stream流对象
使用中间方法处理数据
使用终结方法处理数据
3.如何获取Stream流对象
单列集合:collection中的默认方法stream
双列集合:不能直接获取
数组:Arrays工具类型中的静态方法stream一堆零散的数据:Stream接口中的静态方法0
4.常见方法
中间方法:
filter, limit, skip, distinct, concat, map

终结方法:
forEach, count, collect

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习算法,支持再学习功能,不断提升系统精准度的智慧地产开源了。

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…

Java | Leetcode Java题解之第279题完全平方数

题目&#xff1a; 题解&#xff1a; class Solution {public int numSquares(int n) {if (isPerfectSquare(n)) {return 1;}if (checkAnswer4(n)) {return 4;}for (int i 1; i * i < n; i) {int j n - i * i;if (isPerfectSquare(j)) {return 2;}}return 3;}// 判断是否为…

Spring Security学习笔记(二)Spring Security认证和鉴权

前言&#xff1a;本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 上一篇博客介绍了Spring Security的整体架构&#xff0c;本篇博客要讲的是Spring Security的认证和鉴权两个重要的机制。 UsernamePasswordAuthenticationFilter和BasicAuthenticationFilter是…

Idea 编译项目报错 java: java.lang.OutOfMemoryError:GC overhead limit exceeded

报错 java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObjectpos13979: GC overhead limit exceeded解决 默认是700M&#xff0c;有的时候项目引入的依赖包比较大&#xff0c;可能超过了700M,需要扩大&#xff0c;根据实际情况设…

Dockerfile指令详解和Docker操作命令

1.容器的特点&#xff1a;1&#xff09;自包含&#xff08;包括应用程序及其运行环境&#xff09;&#xff1b;2&#xff09;可移植&#xff1b;3&#xff09;相互隔离&#xff1b;4&#xff09;轻量级。 2.docker成为容器的事实标准在于&#xff1a;1&#xff09;在运行环境上…

开局一个启动器:从零开始入坑ComfyUI

前几天刷某乎的时候看到了一位大佬写的好文&#xff0c;可图 IP-Adapter 模型已开源&#xff0c;更多玩法&#xff0c;更强生态&#xff01; - 知乎 (zhihu.com) 久闻ComfyUI大名&#xff0c;决定试一下。这次打算不走寻常路&#xff0c;不下载现成的一键包了&#xff0c;而是…

ESP32和mDNS学习

目录 mDNS的作用mDNS涉及到的标准文件组播地址IPv4 多播地址IPv6 多播地址预先定义好的组播地址 mDNS调试工具例程mDNS如何开发和使用注册服务查询服务 mDNS的作用 mDNS 是一种组播 UDP 服务&#xff0c;用来提供本地网络服务和主机发现。 你要和设备通信&#xff0c;需要记住…

【计算机网络】静态路由实验

一&#xff1a;实验目的 1&#xff1a;掌握通过静态路由方法实现网络的连通性。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a;RCMS-C服务器、网线、Windows 2019/2003操作系统的计算机等。 软件&#xff1a;记事本、WireShark、Chrome浏览器等。 三&#xff1a;实验方…

Spark实时(二):StructuredStreaming编程模型

文章目录 StructuredStreaming编程模型 一、基础语义 二、事件时间和延迟数据 三、​​​​​​​容错语义 StructuredStreaming编程模型 一、基础语义 Structured Streaming处理实时数据思想是将实时数据看成一张没有边界的表,数据源源不断的追加到这张表中,这可以让我…

实时捕获数据库变更

1.CDC概述 CDC 的全称是 Change Data Capture &#xff0c;在广义的概念上&#xff0c;只要能捕获数据变更的技术&#xff0c;我们都可以称为 CDC 。我们目前通常描述的CDC 技术主要面向数据库的变更&#xff0c;是一种用于捕获数据库中数据变更的技术&#xff0c;CDC 技术应用…

web网站组成

web网站由四部分组成&#xff1a;浏览器 前端服务器 后端服务器 数据库服务器 流程&#xff1a; 1.浏览器输入网站后&#xff0c;向前端服务器发送请求&#xff0c;前端服务器响应&#xff0c;静态的数据给浏览器。 2.前端代码中script中有url,这个是向后台发送请求的网…

Windows下帆软BI(finebi)单机部署移植(Tomcat)攻略

一、基础环境 操作系统&#xff1a;Windows 10 64bit 帆软BI 版本&#xff1a;V9.0/V10.0 HTTP工具&#xff1a;Tomcat 外置数据库&#xff1a;Oracle 11g 实验内容&#xff1a;将已经部署好的帆软BI从一台电脑移植到另一台电脑 二、前期准备 1、做好外置数据库移植&…

结合创新!小波变换+注意力机制,实现100%分类准确率

小波变换是一种新的变换分析方法&#xff0c;它能有效提取信号的局部特征&#xff0c;但无法完全捕捉数据重要部分。为了解决这个问题&#xff0c;我们引入注意力机制&#xff0c;利用其强化关注重点的优势&#xff0c;将两者结合&#xff0c;做到更全面、深入地挖掘数据特征&a…

【初阶数据结构】9.二叉树(4)

文章目录 5.二叉树算法题5.1 单值二叉树5.2 相同的树5.3 另一棵树的子树5.4 二叉树遍历5.5 二叉树的构建及遍历 6.二叉树选择题 5.二叉树算法题 5.1 单值二叉树 点击链接做题 代码&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

昇思25天学习打卡营第22天|CycleGAN图像风格迁移互换

相关知识 CycleGAN 循环生成网络&#xff0c;实现了在没有配对示例的情况下将图像从源域X转换到目标域Y的方法&#xff0c;应用于域迁移&#xff0c;也就是图像风格迁移。上章介绍了可以完成图像翻译任务的Pix2Pix&#xff0c;但是Pix2Pix的数据必须是成对的。CycleGAN中只需…

杭州社保卡办理-农业银行版本

step 1、杭州滨江高新支行 被告知只能工作日办理&#xff08;由于工作时间冲突&#xff0c;办理不了&#xff09; 询问哪个支行可以办&#xff0c;回答说不知道&#xff0c;让我自己去问。银行服务态度较差。 step 2、杭州滨江江南支行 市民卡显示这家&#xff0c;周六可以…

构建现代数据湖

现代数据湖是一半数据仓库和一半数据湖&#xff0c;对所有事情都使用对象存储。使用对象存储来构建数据仓库是通过 Open Table Formats OTF&#xff09; 实现的&#xff0c;例如 Apache Iceberg、Apache Hudi 和 Delta Lake&#xff0c;这些规范一旦实现&#xff0c;就可以无缝…

K8s-控制器

一 为什么使用控制器 pod控制器 作用&#xff1a;1.pod类型资源删除&#xff0c;不会重建 2.控制器可以帮助用户监控&#xff0c;并保证节点上运行定义好的pod副本数 3.pod超过或低于用户期望&#xff0c;控制器会创建、删除pod副本数量 控制器类型&am…

【推研小灶】复旦与南大之间:一次独特的计算机保研之旅

写在前面 上午10点填完志愿等待复试通知&#xff0c;利用这段时间记录一下我简短的夏令营和预推免。今年变为线下之后&#xff0c;部分学校的入营情况、考核方式有明显变化。加上CS方向保研名额总体变多&#xff0c;形势有点小乱&#xff0c;甚至填报系统都在9.29中秋节当天&a…

一文理解生成式AI应用的五个级别:Tool、Chatbot、Copilot、Agent 和 Intelligence

当下&#xff0c;很多人对 AI 一知半解&#xff0c;并不能很好地区分&#xff1a;Tool、Chatbot、Copilot、Agent 和 Intelligence 概念之间的区别。 最近读完 《真格基金戴雨森谈生成式AI&#xff1a;这是比移动互联网更大的创业机会&#xff0c;开始行动是关键 》 发现讲的特…