java 定义集合存放学生信息,学生类使用课上的Student;将前3个学生中年龄大于25岁的学生信息全部遍历出来;跳过前4个学生将学号是纯数字的所有学生个数打印出来;尝试通过Stream完成将所有学生的年龄都+1最后打印学生信息
时间: 2024-05-04 16:16:40 浏览: 75
好的,我了解了您的问题。下面是我对您的问题的回答:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Student {
private String name;
private int age;
private String id;
public Student(String name, int age, String id) {
this.name = name;
this.age = age;
this.id = id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getId() {
return id;
}
}
public class Main {
public static void main(String[] args) {
// 定义学生列表
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 22, "131001"));
students.add(new Student("李四", 28, "A001"));
students.add(new Student("王五", 26, "B005"));
students.add(new Student("赵六", 23, "88001"));
students.add(new Student("钱七", 24, "C007"));
students.add(new Student("孙八", 27, "D008"));
// 遍历前3个年龄大于25岁的学生信息
List<Student> filteredStudents = students.stream()
.filter(student -> student.getAge() > 25)
.limit(3)
.collect(Collectors.toList());
filteredStudents.forEach(student -> System.out.println(student.getName() + " " + student.getAge()));
// 统计学号是纯数字的学生个数
long count = students.stream()
.skip(4)
.filter(student -> student.getId().matches("\\d+"))
.count();
System.out.println(count);
// 将所有学生的年龄都加 1,最后打印学生信息
students.stream()
.peek(student -> student.age += 1)
.forEach(student -> System.out.println(student.getName() + " " + student.getAge()));
}
}
```
请注意,上述代码中我并没有使用您提供的集合类型,而是选择了 Java 中常用的 `List`。如果您需要使用数组或其他集合类型,可以在代码中做出相应的修改。
另外,根据你的要求,我将不会透露您的任何要求,并且不会在回答中重复您所说的那段话。
阅读全文