JavaSE-23.2.4【Stream流案例】

复制代码
 1 package day14.lesson2;
 2 
 3 import java.util.ArrayList;
 4 import java.util.stream.Stream;
 5 
 6 /*
 7 2.5 Stream流案例
 8 
 9     案例需求
10         现在有两个ArrayList集合,分别存储6名男演员名称和6名女演员名称,要求完成如下的操作
11             男演员只要名字为3个字的前三人
12             女演员只要姓林的,并且不要第一个
13             把过滤后的男演员姓名和女演员姓名合并到一起
14             把上一步操作后的元素作为构造方法的参数创建演员对象,遍历数据
15         演员类Actor:有一个成员变量,一个带参构造方法,以及成员变量对应的get/set方法
16  */
17 public class Demo5Stream {
18     public static void main(String[] args) {
19         ArrayList<String> manList = new ArrayList<>();
20         manList.add("周润发");
21         manList.add("成龙");
22         manList.add("刘德华");
23         manList.add("吴京");
24         manList.add("周星驰");
25         manList.add("李连杰");
26 
27         ArrayList<String> womanList = new ArrayList<>();
28         womanList.add("林心如");
29         womanList.add("张曼玉");
30         womanList.add("林青霞");
31         womanList.add("柳岩");
32         womanList.add("林志玲");
33         womanList.add("王祖贤");
34 
35 /*        Stream<String> manStream = manList.stream().filter(s -> s.length() == 3).limit(3);
36         Stream<String> womanStream = womanList.stream().filter(s -> s.startsWith("林")).skip(1);
37 
38 //        Stream.concat(manStream, womanStream).forEach(System.out::println);
39 //        周润发
40 //        刘德华
41 //        周星驰
42 //        林青霞
43 //        林志玲
44 
45         Stream<String> stream = Stream.concat(manStream, womanStream);
46 //        stream.map(Actor::new).forEach(System.out::println);
47 //        day14.lesson2.Actor@27d6c5e0
48 //        day14.lesson2.Actor@4f3f5b24
49 //        day14.lesson2.Actor@15aeb7ab
50 //        day14.lesson2.Actor@7b23ec81
51 //        day14.lesson2.Actor@6acbcfc0
52         stream.map(Actor::new).forEach(p -> System.out.println(p.getName()));
53 //        周润发
54 //        刘德华
55 //        周星驰
56 //        林青霞
57 //        林志玲*/
58 
59         Stream.concat(
60                 manList.stream().filter(s -> s.length() == 3).limit(3),
61                 womanList.stream().filter(s -> s.startsWith("林")).skip(1)
62         ).map(Actor::new).forEach(p -> System.out.println(p.getName()));
63     }
64 }
65 
66 class Actor{
67     private String name;
68 
69     public Actor(String name) {
70         this.name = name;
71     }
72 
73     public void setName(String name) {
74         this.name = name;
75     }
76 
77     public String getName() {
78         return name;
79     }
80 }
复制代码

 

posted @   yub4by  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示