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)); + } }