From d5297a0324e987ca821619d2b5c85f31f6131c16 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 14 Mar 2026 16:22:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day07-Stream=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=B8=B8=E7=94=A8=E6=96=B9=E6=B3=95=E7=BB=83=E4=B9=A0?= =?UTF-8?q?=EF=BC=88=E9=87=8D=E7=82=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/stream03/Person.java | 16 ++++++++++ .../src/com/inmind/stream03/StreamTest25.java | 31 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 javaSE-day07/src/com/inmind/stream03/Person.java diff --git a/javaSE-day07/src/com/inmind/stream03/Person.java b/javaSE-day07/src/com/inmind/stream03/Person.java new file mode 100644 index 0000000..b18bb45 --- /dev/null +++ b/javaSE-day07/src/com/inmind/stream03/Person.java @@ -0,0 +1,16 @@ +package com.inmind.stream03; + +public class Person { + String name; + + public Person(String name) { + this.name = name; + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/javaSE-day07/src/com/inmind/stream03/StreamTest25.java b/javaSE-day07/src/com/inmind/stream03/StreamTest25.java index 1e2b42e..cd5dd13 100644 --- a/javaSE-day07/src/com/inmind/stream03/StreamTest25.java +++ b/javaSE-day07/src/com/inmind/stream03/StreamTest25.java @@ -2,6 +2,7 @@ package com.inmind.stream03; import java.util.ArrayList; import java.util.List; +import java.util.stream.Stream; /* 现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)依次进行以下若干操作步骤: @@ -35,5 +36,35 @@ public class StreamTest25 { two.add("张二狗"); two.add("张天爱"); two.add("张三"); + + /* + 1. 第一个队伍只要名字为3个字的成员姓名; + 2. 第一个队伍筛选之后只要前3个人; + * *//* + + Stream stream1 = one.stream().filter(s -> s.length() == 3).limit(3); + + *//* + 3. 第二个队伍只要姓张的成员姓名; + 4. 第二个队伍筛选之后不要前2个人; + *//* + Stream stream2 = two.stream().filter(s -> s.startsWith("张")).skip(2); + + //5. 将两个队伍合并为一个队伍; + Stream stream = Stream.concat(stream1, stream2); + //6.根据姓名创建Person对象(String流转为Person流) + Stream personStream = stream.map(s -> { + return new Person(s); + }); + //7. 打印整个队伍的Person信息。 + personStream.forEach(p-> System.out.println(p));*/ + + + Stream.concat( + one.stream().filter(s -> s.length() == 3).limit(3), + two.stream().filter(s -> s.startsWith("张")) + .skip(2)) + .map(s -> new Person(s)).forEach(p-> System.out.println(p)); + } }