Stream流综合练习
案例需求
现在有两个ArrayList集合,分别存储6名男演员名称和6名女演员名称,要求完成如下的操作
男演员只要名字为3个字的前三人
女演员只要姓林的,并且不要第一个
把过滤后的男演员姓名和女演员姓名合并到一起
把上一步操作后的元素作为构造方法的参数创建演员对象,遍历数据
演员类Actor已经提供,里面有一个成员变量,一个带参构造方法,以及成员变量对应的get/set方法
代码实现
public class Actor {private String name;public Actor(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}public class StreamTest {public static void main(String[] args) {//创建集合ArrayList<String> manList = new ArrayList<String>();manList.add("周润发");manList.add("成龙");manList.add("刘德华");manList.add("吴京");manList.add("周星驰");manList.add("李连杰");ArrayList<String> womanList = new ArrayList<String>();womanList.add("林心如");womanList.add("张曼玉");womanList.add("林青霞");womanList.add("柳岩");womanList.add("林志玲");womanList.add("王祖贤");/*//男演员只要名字为3个字的前三人Stream<String> manStream = manList.stream().filter(s -> s.length() == 3).limit(3);//女演员只要姓林的,并且不要第一个Stream<String> womanStream = womanList.stream().filter(s -> s.startsWith("林")).skip(1);//把过滤后的男演员姓名和女演员姓名合并到一起Stream<String> stream = Stream.concat(manStream, womanStream);//把上一步操作后的元素作为构造方法的参数创建演员对象,遍历数据
// stream.map(Actor::new).forEach(System.out::println);stream.map(Actor::new).forEach(p -> System.out.println(p.getName()));*/Stream.concat(manList.stream().filter(s -> s.length() == 3).limit(3),womanList.stream().filter(s -> s.startsWith("林")).skip(1)).map(Actor::new).forEach(p -> System.out.println(p.getName()));}
}
Stream流综合练习相关推荐
- Java Stream流综合案例
综合案例: 现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或堵强for循环)和stream流依次进行以下若干操作步骤; 1.第一个队伍只要名字为3个字的成员姓名 ...
- [Java基础]Stream流综合练习
代码如下: package StreamDemoFinal;public class Actor {private String name;public Actor(String name) {thi ...
- 第八章_集合(3)_Map集合Stream流
目录 一.Map 1.Map集合的基本使用 2.Map集合的常用方法 3.Map集合遍历 二.HashMap 三.TreeMap 四.可变参数 五.Stream流 1.Stream流概念 2.获取St ...
- Lambda表达式接口更新方法引用函数式接口Stream流
Lambda表达式&接口更新&方法引用&函数式接口&Stream流 Lambda 1.程序启动三种不同的表现形式 2.Lambda表达式的标准格式 3.练习 Lambd ...
- Java复习第11天---11.4---Java8新特性---Stream流常用方法3和综合案例
Java复习第11天---11.4---Java8新特性---Stream流常用方法3和综合案例 目录 文章目录 1.count:计数-终结方法 2.limit:取前几个元素-延迟方法 3.skip: ...
- Java8中Stream流对集合操作
java8中Stream流引入函数式编程思想,主要配合各种接口.lambda表达式.方法引用等方式,为集合的遍历.过滤.映射等提供非常"优雅"的操作方式. Student.java ...
- 10.Stream流
一.Stream流 1.案例实现 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张" ...
- JDK1.8新特性:Stream流
目录 一.获取流 1.根据Collection获取流 2.根据Map获取流 3.根据数组获取流 二.常用方法 1.过滤:filter 2.统计个数:count 3.取用前几个:limit 4.跳过前几 ...
- Java23-day14【函数式接口(Supplier\Consumer\Predicate\Function)、Stream流(生产方式\中间方法\终结方法)】
视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...
最新文章
- 暑期集训2:ACM基础算法 练习题B:CF-1008B
- 微软一站式示例代码浏览器 v5.1 更新
- 18.DataGrid内绑定ComboBox和ListBox以及取值
- ceph pg_num 数值计算
- 根据图片URL获取图片的尺寸【Swift语言实现】
- hadoop文件系统与I/O流
- mx2 android os耗电,魅族MX3 Flyme OS 3.2充电慢、耗电快问题的解决方法详解
- C ++ STL中的set :: upper_bound()函数
- ## c 连接字符_用于字符比较的C#程序
- 单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
- ActiveMQ使用教程
- Cocos2d-x建工程时避免copy文件夹和库(子龙山人)
- 你了解实时3D渲染吗?实时渲染软件和应用场景科普来了
- 全志A64和瑞芯微RK3288参数对比介绍
- 【我是老中医】codeblocks无法编译的问题解决方法
- 决策树概述+模块介绍+重要参数(criterion+random_statesplitter+减枝参数+目标权重参数)+回归树(参数+实例+拟合正弦曲线)+泰坦尼克号生存者预测实例
- 面试:React相关
- 《JavaScript DOM编程艺术》笔记1
- 卷积神经网络论文学习(Lecun1998)
- 【webrtc】web端打开日志及调试
热门文章
- Java Collection 学习
- Docker入门(运行.net core asp项目)
- Kotlin实现LeetCode算法题之Median of Two Sorted Arrays
- Flume Source 实例
- 27.怎样在Swift中声明typedef?
- Android 编程下 px - dp 的相互转换
- 关于黑客的报道里绝对不会提到的信息
- ---WebCam网络摄像头7 cmos--yuv rgb , Format............:V4L2_PIX_FMT_YUYV
- 【Apache JMeter】JMeter接口压测实例
- JAVA中报错AbandonedObjectPool is used (org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool@f70ee1)