Java 关于method的基础问题

添加/更新 AddStudent 方法,以便:
接受两个代表学生姓名和年龄的输入值
如果姓名和/或年龄无效,则返回 false
如果输入名称已存在于数组列表学生中,则返回 false。
提示:‘使用合适的循环结构’
如果学生姓名和年龄有效且姓名不存在于 ArrayList 学生中,则:
创建类 Student 的新实例
将输入参数 name 和 age 传递给类 Student 的构造函数
将新实例添加到 ArrayList 学生
添加/更新 AddFaculty 方法,以便:
接受一个输入值表示院系名称
如果名称无效,则返回 false
如果输入名称已存在于数组列表中,则返回 false。
提示:‘使用合适的循环结构’
如果学院名称有效并且该名称在 ArrayList 学院中不存在,则:
创建类 Faculty 的新实例
将输入参数名称传递给 Faculty 类的构造函数
将新实例添加到 ArrayList 系

img

img

img

img

img

img

@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 方法以及构造方法,也可以手工编写这些方法。