进阶day07-Stream中的常用方法练习(重点)
This commit is contained in:
16
javaSE-day07/src/com/inmind/stream03/Person.java
Normal file
16
javaSE-day07/src/com/inmind/stream03/Person.java
Normal file
@@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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<String> stream1 = one.stream().filter(s -> s.length() == 3).limit(3);
|
||||
|
||||
*//*
|
||||
3. 第二个队伍只要姓张的成员姓名;
|
||||
4. 第二个队伍筛选之后不要前2个人;
|
||||
*//*
|
||||
Stream<String> stream2 = two.stream().filter(s -> s.startsWith("张")).skip(2);
|
||||
|
||||
//5. 将两个队伍合并为一个队伍;
|
||||
Stream<String> stream = Stream.concat(stream1, stream2);
|
||||
//6.根据姓名创建Person对象(String流转为Person流)
|
||||
Stream<Person> 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));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user