Java 添加和删除元素

Java 添加和删除元素,java,Java,我应该让教授当一门课的老师。上述方法的评论也说明了目标。然而,我不知道如何去做这件事。我是java编程新手,所以我决定通过做一个“instanceof”比较来检查教授是否在这门课上。我是朝着正确的方向前进还是错过了什么?谢谢大家! 在接近结尾时,我添加了我刚刚遇到的另外两种方法,我认为我错误地实现了getStudents。最后两种方法要求添加学生和删除学生。我不确定学生的键值对是什么 公共课实施可比性{ /** * course id (unique) */ private int id;

我应该让教授当一门课的老师。上述方法的评论也说明了目标。然而,我不知道如何去做这件事。我是java编程新手,所以我决定通过做一个“instanceof”比较来检查教授是否在这门课上。我是朝着正确的方向前进还是错过了什么?谢谢大家!

  • 在接近结尾时,我添加了我刚刚遇到的另外两种方法,我认为我错误地实现了getStudents。最后两种方法要求添加学生和删除学生。我不确定学生的键值对是什么

    公共课实施可比性{

    /**
     * course id (unique)
     */
    private int id;
    /**
     * course name
     */
    private String name;
    /**
     * course level
     */
    private int level;
    /**
     * professor teaching the course, null if none
     */
    private String professor;
    /**
     * students enrolled in the course (unique), empty if none
     */
    private HashSet<String> students;
    
    /**
     * Create a course. Initially there is no professor or student for the
     * course.
     *
     * @param id course id
     * @param name course name
     * @param level course level
     */
    public Course(int id, String name, int level) {
        this.id = id;
        this.name = name;
        this.level = level;
        this.professor = null;
        this.students = new HashSet<>();
    }
    
    /**
     * Get the course id.
     *
     * @return course id
     */
    public int getId() {
        return id;
    }
    
    /**
     * Get the course name.
     *
     * @return course name
     */
    public String getName() {
        return name;
    }
    
    /**
     * Get the course level.
     *
     * @return course level
     */
    public int getLevel() {
        return level;
    }
    
    /**
     * Get the professor teaching the course.
     *
     * @return the professor, if none, null
     */
    public String getProfessor() {
        return professor;
    }
    
    /**
     * Get the students enrolled in the course.
     *
     * @return the students, organized by ascending hash codes. if there are no
     * students enrolled the list should be empty.
     */
    public Collection<String> getStudents() {
        return students;
    }
    
    /**
     * Make a professor the instructor of this course. If another professor was
     * teaching it, that information is lost.
     *
     * @param username the username of the professor
     */
    public void addProfessor(String username) {
    
    }
    
    /**
    *课程id(唯一)
    */
    私有int-id;
    /**
    *课程名称
    */
    私有字符串名称;
    /**
    *课程水平
    */
    私有整数级;
    /**
    *教授教授该课程,如果没有,则为空
    */
    私人弦乐教授;
    /**
    *注册课程的学生(唯一),如果没有,则为空
    */
    私立学校学生;
    /**
    *创建一门课程。最初,课程没有教授或学生
    *当然。
    *
    *@param id课程id
    *@param name课程名称
    *@param-level课程级别
    */
    公共课程(整数id、字符串名称、整数级别){
    this.id=id;
    this.name=名称;
    这个水平=水平;
    this.professor=null;
    this.students=newhashset();
    }
    /**
    *获取课程id。
    *
    *@return-course-id
    */
    公共int getId(){
    返回id;
    }
    /**
    *获取课程名称。
    *
    *@返回课程名称
    */
    公共字符串getName(){
    返回名称;
    }
    /**
    *达到课程水平。
    *
    *@返程等级
    */
    public int getLevel(){
    回报水平;
    }
    /**
    *让教授教这门课。
    *
    *@返回教授,如果没有,则为空
    */
    公共字符串getProfessor(){
    返回教授;
    }
    /**
    *让学生报名参加这门课程。
    *
    *@返回学生,按升序散列码组织,如果没有
    *已注册的学生列表应为空。
    */
    公众募捐(学生){
    留学生;
    }
    /**
    *让一位教授担任本课程的讲师。如果另一位教授
    *如果教它,信息就会丢失。
    *
    *@param username教授的用户名
    */
    public void addProfessor(字符串用户名){
    }
    
    } /**

    • 在课程中添加一名学生,如果他们未注册
    • 在固定时间内。 *
    • @param username学生的用户名
    • @返回是否添加了该学生 */ 公共布尔addStudent(字符串用户名){ //待办事项 返回false; }
    /**

    • 如果学生已注册,则将其从课程中删除
    • 在固定时间内。 *
    • @param username要删除的学生的用户名
    • @如果学生被删除,则返回true;如果学生不在课程中,则返回false */ 公共布尔removeStudent(字符串用户名){ //待办事项 返回false; }

您可以在
professor
上调用getter来检查它是否已设置

public void addProfessor(String professor) {
     if(this.getProfessor() == null || this.getProfessor().isEmpty()) {
         this.setProfessor(professor);
     }
}

您可以在
professor
上调用getter来检查它是否已设置

public void addProfessor(String professor) {
     if(this.getProfessor() == null || this.getProfessor().isEmpty()) {
         this.setProfessor(professor);
     }
}

只要实现这个方法-

public void addProfessor(String username) {
    /*
    This assignment will replace any other professor
    who are teaching of this course.
    If you assign the class variable **professor**,
    when you call getProfessor(), that will return
    username this professor.
    */
    this.professor = username;
}

只要实现这个方法-

public void addProfessor(String username) {
    /*
    This assignment will replace any other professor
    who are teaching of this course.
    If you assign the class variable **professor**,
    when you call getProfessor(), that will return
    username this professor.
    */
    this.professor = username;
}

您可以使用instanceof关键字检查对象在运行时是否属于特定类型。在本例中,注释表示,如果先前设置了值,则该值将丢失。这意味着您可以简单地将给定值设置为professor,而无需进行任何检查

public void addProfessor(String userName) {
    professor = userName;
}

您可以使用instanceof关键字检查对象在运行时是否属于特定类型。在本例中,注释表示,如果先前设置了值,则该值将丢失。这意味着您可以简单地将给定值设置为professor,而无需进行任何检查

public void addProfessor(String userName) {
    professor = userName;
}


“方法注释说明,以前是否将值设置为教授并不重要。@AaronDavis,是的。”。我认为这就是OP面临的问题。这就是为什么他将其作为对该方法的评论。似乎您添加了一个额外的参数并删除了该空白。是否有其他方法可以在不编辑原始方法的情况下实现此功能?不确定我的教授是否允许我们以任何方式修改它。@JanSolo,刚刚编辑了我的答案,使其与您现有的
addProessor
方法兼容。检查它。方法注释说明,以前是否将值设置为教授并不重要。@AaronDavis,是的。我认为这就是OP面临的问题。这就是为什么他将其作为对该方法的评论。似乎您添加了一个额外的参数并删除了该空白。是否有其他方法可以在不编辑原始方法的情况下实现此功能?不确定我的教授是否允许我们以任何方式修改它。@JanSolo,刚刚编辑了我的答案,使其与您现有的
addProessor
方法兼容。请查看。
addProfessor
方法的注释说,新教授将覆盖以前的教授,因此您是否确实必须检查教授是否已经在课程中?有关添加和删除学生方法的实现,请查看集合上的添加和删除方法。
addProfessor
方法的注释说,新教授将覆盖以前的教授,因此您是否确实必须检查教授是否已经在课程中?有关添加和删除学生方法的实现,请查看集合上的添加和删除方法。如果有,这会默认删除以前的教授吗?是的,它只会覆盖以前的值不确定您是否看到了我刚才添加的部分,但您能解释一下Student如何成为哈希集吗?我不知道键值对是什么。@jansool上面的代码将students变量作为HashSet。集合没有键值对(这将是一个映射)。集合是无序(通常,除了少数特殊类型)的数据集合。它允许快速检查集合中是否包含元素。集合中的每个元素