添加/更新 AddStudent 方法,以便:
接受两个代表学生姓名和年龄的输入值
如果姓名和/或年龄无效,则返回 false
如果输入名称已存在于数组列表学生中,则返回 false。
提示:‘使用合适的循环结构’
如果学生姓名和年龄有效且姓名不存在于 ArrayList 学生中,则:
创建类 Student 的新实例
将输入参数 name 和 age 传递给类 Student 的构造函数
将新实例添加到 ArrayList 学生
添加/更新 AddFaculty 方法,以便:
接受一个输入值表示院系名称
如果名称无效,则返回 false
如果输入名称已存在于数组列表中,则返回 false。
提示:‘使用合适的循环结构’
如果学院名称有效并且该名称在 ArrayList 学院中不存在,则:
创建类 Faculty 的新实例
将输入参数名称传递给 Faculty 类的构造函数
将新实例添加到 ArrayList 系
@Data
@AllArgsConstructor
public class Faculty {
private String facultyName;
}
@Data
@AllArgsConstructor
public class Student {
private String name;
private Integer age;
}
@Data
public class Enrollment {
private Student student;
private Faculty faculty;
}
@Data
public class University {
private String universityName;
private Integer worldRank;
private List<Faculty> faculties = new ArrayList<>();
private List<Student> students = new ArrayList<>();
private List<Enrollment> enrollments = new ArrayList<>();
public boolean addStudent(String name, Integer age) {
if (name == null || name.length() < 2 || age == null || age < 15 || age > 95) {
return false;
}
if (students.stream().map(Student::getName).anyMatch(item -> item.equals(name))) {
return false;
}
students.add(new Student(name, age));
return true;
}
public boolean addFaculty(String facultyName) {
if (facultyName == null || facultyName.length() < 3) {
return false;
}
if (faculties.stream().map(Faculty::getFacultyName).anyMatch(item -> item.equals(facultyName))) {
return false;
}
faculties.add(new Faculty(facultyName));
return true;
}
}
示例中使用了 lombok 注解,编译时会自动生成 get/set/toString 方法以及构造方法,也可以手工编写这些方法。