Java流Stream使用详解(练习)
- 练习
第一题 数据过滤
定义一个集合,并添加一些整数1,2,3,4,5,6,7,8,9,10过滤奇数,只留下偶数,并将结果保存起来
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;public class DataFilter {public static void main(String[] args) {/** 定义一个集合,并添加一些整数1,2,3,4,5,6,7,8,9,10* 过滤奇数,只留下偶数,并将结果保存起来*/// 创建集合List<Integer> list = new ArrayList<>();// 添加元素Collections.addAll(list, 1,2,3,4,5,6,7,8,9,10);// 过滤奇数List<Integer> newList = list.stream().filter(i -> i % 2 != 1).collect(Collectors.toList());System.out.println(newList);}
}
第二题 数据操作
创建一个ArrayList集合,并添加以下字符串,字符串中前面是姓名,后面是年龄
“zhangsan,23”
“lisi,24”
“wangwu,25”
保留年龄大于等于24岁的人,并将结果收集到Map集合中,姓名为键,年龄为值
import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;public class DataOpratorate {public static void main(String[] args) {/** 创建一个ArrayList集合,并添加以下字符串,字符串中前面是姓名,后面是年龄* “zhangsan,23”* “lisi,24”* “wangwu,25”* 保留年龄大于等于24岁的人,并将结果收集到Map集合中,姓名为键,年龄为值*/// 创建列表ArrayList<String> list = new ArrayList<>();// 添加元素Collections.addAll(list, "zhangsan,23", "lisi,24", "wangwu,25", "zhubajie,1322", "sunwukong,800");// 过滤:保留大于24岁的人// 收集:姓名为键,年龄为值Map<String, Integer> map = list.stream().filter(s -> Integer.valueOf(s.split(",")[1]) > 24).collect(Collectors.toMap(s -> s.split(",")[0],s -> Integer.valueOf(s.split(",")[1])));// 打印System.out.println(map);}
}
第三题 数据操作
现在有两个ArrayList集合,
第一个集合中:存储6名男演员的名字和年龄。
第二个集合中:存储6名女演员的名字和年龄。
姓名和年龄中间用逗号隔开。比如:张三,23
要求完成如下的操作:
1,男演员只要名字为3个字的前两人
2,女演员只要姓杨的,并且不要第一个
3,把过滤后的男演员姓名和女演员姓名合并到一起
4,将上一步的演员信息封装成Actor对象。
5,将所有的演员对象都保存到List集合中。
备注:演员类Actor,属性只有二个:name,age
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class ActorStreamDemo {public static void main(String[] args) {/*现在有两个ArrayList集合,第一个集合中:存储6名男演员的名字和年龄。第二个集合中:存储6名女演员的名字和年龄。姓名和年龄中间用逗号隔开。比如:张三,23要求完成如下的操作:1,男演员只要名字为3个字的前两人2,女演员只要姓杨的,并且不要第一个3,把过滤后的男演员姓名和女演员姓名合并到一起4,将上一步的演员信息封装成Actor对象。5,将所有的演员对象都保存到List集合中。备注:演员类Actor,属性只有二个:name,age*/// 男演员ArrayList<String> actors = new ArrayList<>();// 女演员ArrayList<String> actress = new ArrayList<>();// 添加元素Collections.addAll(actors, "旺财一,25", "张德,23", "朱思渺,38", "刘行,72", "王美雄,54", "黄得壮,48");Collections.addAll(actress, "杨二小,26", "武连连,33", "刘美,58", "程天天,21", "李红,38", "杨美美,36");//1,男演员只要名字为3个字的前两人List<String> actorsWith3digitsLimit2 = actors.stream().filter(s -> s.split(",")[0].length() == 3).limit(2).collect(Collectors.toList());//System.out.println(actorsWith3digitsLimit2);//2,女演员只要姓杨的,并且不要第一个List<String> yangActress = actress.stream().filter(s -> s.startsWith("杨")).skip(1).collect(Collectors.toList());//System.out.println(yangActress);//3.合并List<String> concatedList = Stream.concat(actorsWith3digitsLimit2.stream(), yangActress.stream()).collect(Collectors.toList());//System.out.println(concatedList);//4-1,将上一步的演员信息封装成Actor对象。concatedList.stream().map(new Function<String, Actor>() {@Overridepublic Actor apply(String s) {String[] split = s.split(",");return new Actor(split[0], Integer.valueOf(split[1]));}}).forEach(actor -> System.out.println(actor));//4-2,lambda将上一步的演员信息封装成Actor对象。concatedList.stream().map(s -> new Actor(s.split(",")[0], Integer.valueOf(s.split(",")[1]))).forEach(actor -> System.out.println(actor));//5,将所有的演员对象都保存到List集合中。List<Actor> ActorObjList = concatedList.stream().map(s -> new Actor(s.split(",")[0], Integer.valueOf(s.split(",")[1]))).collect(Collectors.toList());System.out.println(ActorObjList);}
}
相关文章:
Java流Stream使用详解(练习)
练习 第一题 数据过滤 定义一个集合,并添加一些整数1,2,3,4,5,6,7,8,9,10过滤奇数,只留下偶数,并将结果保存起来 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.stream.Collectors…...
请介绍一下MySQL的存储引擎及其特点
问题:请介绍一下MySQL的存储引擎及其特点。 回答: MySQL是一个开源的关系型数据库管理系统,它支持多种存储引擎,每个存储引擎都有其自身的特点和适用场景。下面是对MySQL常见存储引擎的简要介绍: InnoDB: …...
Python---魔术方法
1、什么是魔术方法 在Python中,__xxx__()的函数叫做魔法方法,指的是具有特殊功能的函数。 2、__init__()方法(初始化方法或构造方法) 思考:人的姓名、年龄等信息都是与生俱来的属性,可不可以在生产过程中就赋予这些属性呢&…...
手把手教你注册意大利商标
在当今全球商业环境中,拥有一个独特的商标可以为企业在市场竞争中提供重要优势。商标作为品牌形象的核心,有助于吸引潜在客户,提升品牌价值,增加客户忠诚度。在意大利,商标注册同样具有重要意义,它能为企业…...
pandas详细笔记
一:什么是Pandas from matplotlib import pyplot import numpy as np import pandas as pdarange np.arange(1, 10, 2) series pd.Series(arange,indexlist("ABCDE")) print(series)二:索引 三:切片 位置索引切片(左闭…...
win11安装(未完待续)
学习补丁 test.bat 运行后需要重启 slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX slmgr /skms kms.03k.org slmgr /ato 文件扩展名 主题 性能设置 开始按钮靠左 任务栏对齐方式-靠左 必备软件 f.lux redshift 360管家 驱动精灵 edge c*lash(v2*ray不支持w…...
python之记录程序运行时长工具
python之记录程序运行时长工具 废话不多话,上代码 from datetime import datetime, timedelta import timestart_time datetime.now()while True:current_time datetime.now()elapsed_time current_time - start_timeformatted_time str(elapsed_time).split(…...
.Net core 6.0 升8.0
1 Update Visual Studio 2 3 用Nutget 更新不同套件版本 更新后结果如下:...
MacDroid Pro for Mac – 安卓设备文件传输助手,实现无缝连接与传输!
想要在Mac电脑上轻松管理和传输您的安卓设备文件吗?MacDroid Pro for Mac 是您的最佳选择!这款强大的文件传输助手可以让您在Mac上与安卓设备之间实现快速、方便的文件传输。 MacDroid Pro for Mac 提供了简单易用的界面,让您能够直接在Mac上…...
【EtherCAT详解】基于Wireshark的EtherCAT帧结构解析
写在前面 EtherCAT的报文比较繁琐,且一些参考书籍错误较多,且晦涩难懂,对于初学者,很难快速的入门。本文适用于有一定基础的研究者,如对报文有一些研究、对canopen协议有一定了解、并且对TwinCAT有了解的研究者。当然,对于初学者来说,也是很好的引导,少走很多弯路。本…...
C语言之程序的组成和元素格式
目录 关键字 运算符 标识符 姓名和标识符 分隔符 常量和字符串常量 自由的书写格式 书写限制 连接相邻的字符串常量 缩进 本节我们来学习程序的各组成元素(关键字、运算符等)和格式相关的内容。 关键字 在C语言中,相if和else这样的标识…...
HalconDotNet.HTupleAccessException:Index out of range
原因可能是没有生成hv_Qx的值,我这里是没有生成该值的区域。...
Delphi-线程
碰到身份证阅读器项目,直接放进trimmer里面读卡,导致主页面卡顿,就打算放进子线程里试一下,就有了这个尝试。 1.创建线程文件 直接点击左上角file新建other,delphi有自带的模版 这个勾选了,就是他会给你…...
WeakMap
WeakMap简介 作为es6一种新的数据结构,他是一种键值对的集合。与Map最大的区别有两个 1. 是其中的键必须是对象或非全局注册的符号。 全局注册的符号 const s1 Symbol.for(mySymbol) 非全局注册的符号 const s1 Symbol(mySymbol)了解Symbol.for 2. 不会创建对它…...
获取网络ppt资源
背景: 某度上有很多优质的PPT资源和文档资源,但是大多数需要付费才能获取。对于一些经济有限的用户来说,这无疑是个遗憾,因为我们更倾向于以免费的方式获取所需资源。 解决方案: 然而,幸运的是&am…...
从0到1构建智能分布式大数据爬虫系统
文章目录 1. 写在前面2. 数据获取挑战3. 基础架构4. 爬取管理5. 数据采集6. 增量与去重设计 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐…...
C语言速通笔记(41-62)
40.十六进制转义字符:\x6d才是合法的,前面的0不能写,而且 x 是小写 41.字符型和整型是近亲:两个具有很大的相似之处,所有的字符都有一个它对应的整形数 据的 ASCLL 的数值。如 char a 65 % …...
Python 调用企业微信群机器人发送消息及文件
Python 操作企业微信群机器人。 企业微信群创建机器人 : 安装 requests json : pip install requests pip install json发送消息(markdown) import requests import json# 企业微信机器人发送文字 def send_markdown (message, …...
数据结构:链表应用:第6关:链表的分解
任务描述 本关任务:利用单链表A表示一个非零整数序列,把A分解为两个具有相同结构的链表B和C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点。要求空间复杂度为O(1),链表B和C均利用链表A的结点…...
10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)
概念: 交叉验证法,就是把一个大的数据集分为 k个小数据集,其中 k − 1 个作为训练集,剩下的 1 个作为测试集,在训练和测试的时候依次选择训练集和它对应的测试集。这种方法也被叫做 k 折交叉验证法(k-fold…...
中小企业:理解CRM与ERP系统的区别与联系,提升业务效能
许多中小型企业正面临着客户递增,市场营销,货存流通等递增数据整合的困扰。这个时候需要根据自身企业的实际情况去选择适合自己的系统。那么,中小企业使用CRM系统和erp系统的区别是什么? 一、含义和目标区别 CRM系统旨在帮助企业…...
01数仓平台 Hadoop介绍与安装
Hadoop概述 Hadoop 是数仓平台的核心组件。 在 Hadoop1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源调度,耦合性较大。在 Hadoop2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。Hadoop3.x 在…...
网络编程HTTP协议进化史
一、Http报文格式 具有约定格式的数据块 请求报文 request 状态行:本次请求的请求方式(post get)资源路径url http 协议的版本号,中间用空格划分 本次请求的请求方式(post get)资源路径url http 协议…...
第17章 匿名函数
第17.1节 匿名函数的基本语法 [捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 { // 函数体 }语法规则:lambda表达式可以看成是一般函数的函数名被略去,返回值使用了一个 -> 的形式表示。唯一与普通函数不同的是增加了“捕获列表”。 …...
JVM虚拟机:JVM参数之标配参数
本文重点 本文我们将学习JVM中的标配参数 标配参数 从jdk刚开始就有的参数,比如: -version -help -showversion...
UEC++ 探索虚幻5笔记(捡金币案例) day12
吃金币案例 创建金币逻辑 之前的MyActor_One.cpp,直接添加几个资源拿着就用 //静态网格UPROPERTY(VisibleAnywhere, BlueprintReadOnly)class UStaticMeshComponent* StaticMesh;//球形碰撞体UPROPERTY(VisibleAnywhere, BlueprintReadWrite)class USphereCompone…...
Docker 安装 Redis 挂载配置
1. 创建挂载文件目录 mkdir -p /home/redis/config mkdir -p /home/redis/data # 创建配置文件:docker容器中默认不包含配置文件 touch /home/redis/config/redis.conf2. 书写配置文件 # Redis 服务器配置# 绑定的 IP 地址,默认为本地回环地址 127.0.0…...
Java操作Excel之 POI介绍和入门
POI是Apache 提供的一个开源的Java API,用于操作Microsoft文档格式,如Excel、Word和PowerPoint等。POI是Java中处理Microsoft文档最受欢迎的库。 截至2023/12, 最新版本时 POI 5.2.5。 JDK版本兼容 POI版本JDK版本4.0及之上版本> 1.83.…...
麒麟v10 数据盘初始化 gpt分区
麒麟v10 数据盘初始化 gpt分区 1、查看磁盘 lsblk2 、分区 parted2.1、 设置磁盘分区形式2.2、 设置磁盘的计量单位为磁柱2.3、 分区2.4、 查看分区 3、分区格式化4、 挂载磁盘4.1、新建挂载目录4.2、挂载磁盘4.3、查看挂载结果 5、设置开机自动挂载磁盘分区5.1、 查询磁盘分区…...
php时间和centos时间不一致
PHP 时间和 CentOS 操作系统时间不一致的问题通常是由于时区设置不同造成的。解决这个问题可以通过以下几个步骤: 检查 CentOS 系统时间: 你可以通过在终端运行命令 date 来查看当前的系统时间和时区。 配置 CentOS 的时区: 如果系统时间不正…...
好女人生活常识网站建设/免费自动推广手机软件
1。怎么关闭windows7的自动更新? 答: 控制面板---管理工具---性能和维护---服务---Automatic Updates---设置启动类型“禁用”---确定,这样就可以了。...
商城网站建设行情/网络优化软件
基础数据类型什么是数据: x 10, 10是我们要存储的数据为什么分数据类型: 数据是用来表示状态的, 不同的状态就应该用不同的类型的数据去表示。数字 int数字主要用于计算用# bit_length() 当十进制用二进制表示时,最少使用的位数v 11data v.bit_length()print(dat…...
企业网上推广方式/西安seo霸屏
LeetCode 456. 132模式 难度 中等 给定一个整数序列:a1, a2, …, an,一个132模式的子序列ai, aj, ak被定义为:当i < j < k时,ai < ak < aj。设计一个算法,当给定有n个数字的序列时,验证这个…...
河北做网站找谁/网络推广公司联系方式
jvm参数配置解析 参数说明-Xmx2048M JVM最大堆内存 -Xms2048M JVM最初始堆内存 -Xmn256MJVM年轻代大小(整个堆大小年轻代大小 年老代大小 持久代大小 。持久代一般固定大小为64m)-XX:MaxMetaspaceSize256MMaxMetaspaceSize是没有上限的,最…...
查企业去哪个网站/网络推广员是干嘛的
我的上篇博客【我心目中的Asp.net核心对象】 讲述了一些我认为在Asp.net中比较重要的核心对象,以及演示了直接使用它们也能实现一个简单的服务响应。今天,我将继续把我认为Asp.net的另一些重要的内容拿出来与大家一起分享, 同时将使用本次所讲…...
做网站的广告图片/百度广告投放平台叫什么
Example002 题目 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针,请写出相应的入队列和出队列的算法。 分析 注意,这里的不设头指针的意思是不设定队头指针。 我们设 rear 为带头结点的循环链…...