现在有两个 ArrayList 集合存储队伍当中的多个成员姓名,要求使用Stream方式进行以 下若干操作步骤: 1. 第一个队伍只要名字为3个字的成员姓名; 2. 第一个队伍筛选之后只要前6个人; 3. 第二个队伍只要姓张的成员姓名; 4. 第二个队伍筛选之后不要前1个人; 5. 将两个队伍合并为一个队伍; 6. 根据姓名创建Student对象; 7. 打印整个队伍的Student对象信息。
时间: 2024-04-11 08:27:19 浏览: 60
集合Stream方法简单使用方法
可以按照以下方式使用Stream进行操作步骤:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 第一个队伍只要名字为3个字的成员姓名
List<String> team1 = new ArrayList<>();
team1.add("Tom");
team1.add("John");
team1.add("Mary");
team1.add("David");
team1.add("Alex");
team1.add("Lisa");
team1.add("Bob");
List<String> filteredTeam1 = team1.stream()
.filter(name -> name.length() == 3)
.collect(Collectors.toList());
// 第一个队伍筛选之后只要前6个人
List<String> firstSixMembers = filteredTeam1.stream()
.limit(6)
.collect(Collectors.toList());
// 第二个队伍只要姓张的成员姓名
List<String> team2 = new ArrayList<>();
team2.add("张三");
team2.add("李四");
team2.add("张五");
team2.add("王五");
team2.add("张六");
team2.add("陈七");
List<String> filteredTeam2 = team2.stream()
.filter(name -> name.startsWith("张"))
.collect(Collectors.toList());
// 第二个队伍筛选之后不要前1个人
List<String> skipFirstMember = filteredTeam2.stream()
.skip(1)
.collect(Collectors.toList());
// 将两个队伍合并为一个队伍
List<String> mergedTeam = Stream.concat(firstSixMembers.stream(), skipFirstMember.stream())
.collect(Collectors.toList());
// 根据姓名创建Student对象
List<Student> students = mergedTeam.stream()
.map(Student::new)
.collect(Collectors.toList());
// 打印整个队伍的Student对象信息
students.forEach(System.out::println);
}
}
class Student {
private String name;
public Student(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
'}';
}
}
```
这段代码将输出整个队伍的Student对象信息。请注意,此处的Student类只包含了姓名属性,你可以根据自己的需求进行修改。
阅读全文