Stream流的使用案例

news/2025/1/12 13:27:02/

Stream流的使用案例

1. 演员类Actor

public class Actor {private String name;private Integer age;public Actor(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Actor{" +"name='" + name + '\'' +", age=" + age +'}';}
}

2. 相关案例

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class Demo6 {public static void main(String[] args) {/*** 案例一* 定义一个集合, 并添加一些整数: 1,2,3,4,5,6,7,8,9,10* 过滤奇数, 留下偶数, 并把结果保存起来*/ArrayList<Integer> list = new ArrayList<>();Collections.addAll(list,1,2,3,4,5,6,7,8,9,10);List<Integer> newList = list.stream().filter(s -> s % 2 == 0).collect(Collectors.toList());System.out.println(newList);System.out.println("====================");/*** 案例二* 创建一个ArrayList集合, 并添加以下字符串, 字符串前面是姓名, 后面是年龄。 "张三,23","李四,24","王五,25"* 保留年龄大于等于24岁的人, 并将结果保留到map集合中, 姓名为键, 年龄为值*/ArrayList<String> arrayList = new ArrayList<>();Collections.addAll(arrayList,"张三,23","李四,24","王五,25");Map<String, String> map = arrayList.stream().filter(s -> Integer.parseInt(s.split(",")[1]) >= 24).collect(Collectors.toMap(s -> s.split(",")[0], s -> s.split(",")[1]));System.out.println(map);System.out.println("====================");/*** 案例三* 现有两个ArrayList集合, 第一个集合中: 存储六名男演员的名字和年龄, 第二个集合中: 存储六名女演员的名字和年龄* 完成以下操作:* 1. 男演员只要名字为3个字的前两人* 2. 女演员只要姓杨的, 并且不要第一个* 3. 把过滤的男演员姓名和女演员姓名合并在一起* 4. 将上一步的演员信息封装成Actor对象* 5. 将所有的演员对象封装到list集合中* 演员类Actor : 属性 name,age*/ArrayList<String> boyList = new ArrayList<>();ArrayList<String> girlList = new ArrayList<>();Collections.addAll(boyList,"周新驰,56","张大友,62","刘继辉,35","张震,32","萧炎,24","袁天罡,320");Collections.addAll(girlList,"赵小颖,35","杨紫,21","高圆圆,35","张小咪,32","杨玉环,24","杨小小,20");// 男演员只要名字为3个字的前两人List<String> newBoyList = boyList.stream().filter(s -> s.split(",")[0].length() == 3).limit(2).collect(Collectors.toList());// 女演员只要姓杨的, 并且不要第一个List<String> newGirlList = girlList.stream().filter(s -> s.startsWith("杨")).skip(1).collect(Collectors.toList());System.out.println(newBoyList);System.out.println("====================");System.out.println(newGirlList);System.out.println("====================");// 把过滤的男演员姓名和女演员姓名合并在一起List<String> concatList = Stream.concat(newBoyList.stream(), newGirlList.stream()).collect(Collectors.toList());System.out.println(concatList);System.out.println("====================");// 将上一步的演员信息封装成Actor对象,将所有的演员对象封装到list集合中concatList.stream().map(s -> new Actor(s.split(",")[0], Integer.parseInt(s.split(",")[1]))).collect(Collectors.toList()).forEach(s -> System.out.println(s));}
}

http://www.ppmy.cn/news/401211.html

相关文章

国产Excel处理控件spire.xls,新版抢先看~

Spire.XLS for .NET 是一款专业的 .NET Excel 组件&#xff0c; 可以用在各种 .NET 框架中&#xff0c;无需依赖于 Microsoft Office Excel&#xff0c;使开发人员可以快速地在 .NET 平台上完成对 Excel 的各种编程操作&#xff0c;如根据模板创建新的 Excel 文档&#xff0c;…

魔兽争霸V星际争霸V红警

魔兽争霸V星际争霸V红警 魔兽娱乐性强 比较搞笑 你常常越玩越轻松星际竞技性强 比较严肃 你常常越玩越紧张红警政治性强 比较偏激 你常常越玩越气愤玩魔兽 就像唱卡拉ok 普通人练一首歌半个月 已经能赢得同伴的掌声玩星际 就像唱京戏 曲不离口的练上一年 可能还唱不上调子玩红警…

星际争霸II发布了!!!

\r\n 今天,我怀着万分崇敬的心情, 看到了跳票无数次, 传说中的星际争霸 II -- StarCraft II 的最终发布! 有图为证!请看: <img style\"width: 612px; height: 458px;\" src\"http://blog.chinaunix.net/photo/31687_070520121001.jpg\"> 可惜现在主…

探秘AlphaStar:星际争霸人工智能

&#xff08;声明&#xff1a;此文已发表于《爱上机器人》2019年2月刊&#xff0c;转载请联系作者&#xff09; 前言 近十年来&#xff0c;人工智能的研究人员们一直在尝试将游戏用作测试和评估人工智能系统的方法。得益于算法的发展和计算能力的增长&#xff0c; 研究人…

摘录星际争霸1触发

1.防止玩家用show me the money 只要你的地图使用的钱数量不可能超过10000就可以&#xff0c;或是只用一种资源作钱也行.只要玩家的矿和汽同时上万&#xff0c;可判定他用了秘籍; 2.防止玩家用black sheep wall 在玩家无法到达的地方给玩家放置一个虫族防御塔&#…

星际争霸1没背景音乐的解决办法

&#xfeff;&#xfeff; 共享地址 http://pan.baidu.com/s/1sj9SNMX 看得懂标题的&#xff0c;仅仅需要下载1.42G大小的Broodwar.mpq这个文件就行&#xff0c;然后替换原游戏目录内的INSTALL.EXE或Broodwar.mpq或Starcraft.mpq 这是一个只替换了原版光盘CG动画的MPQ文件&…

星际争霸2神族全兵种介绍

星际争霸2神族全兵种介绍 貌似很多兵种啊,而且根据目前的demo,兵种相克非常明显的话游戏节奏可能变慢,不知道可玩性会不会像1那么高 星际2神族全兵种公布! 【2007-6-18】 作者:OGame.NeT|Sodoes 更多精彩尽在神州论坛 翻译:OGame.NeT|Sodoes 狂徒(Zealot):狂徒是神族基…

《星际争霸2》简体中文版暂不推出

网易CEO丁磊20日在分析师电话会议上表示&#xff0c;《星际争霸2》简体中文版的推出时间暂无时间表&#xff0c;并透露7月开始网易将大规模推广《梦幻西游》。 在随后举行的分析师电话会议上&#xff0c;丁磊表示网易正在跟暴雪就《星际争霸2》简体中文版的推出时间跟暴雪进行磋…