Java从树集中删除用户定义的对象

时间:2017-02-10 09:55:26

标签: java treeset user-defined

我创建了一个包含患者姓名和性别的Patient对象,我想根据患者姓名将其删除。这样做的正确方法是什么?

这是我的患者对象:

class Patient {

    private String name;
    private int gender;

    public Patient(String name, int gender){
        this.name = name;
        this.gender = gender;
    }

    public String getName(){
        return this.name;
    }

    public int getGender(){
        return this.gender;
    }

    public void setName(String name){
        this.name = name;
    }

    public void setGender(int gender){
        this.gender = gender;
    }

}

这是我的Treeset声明:private TreeSet<Patient> ts = new TreeSet<Patient>(new nameComp());

这是我的删除方法(我不知道如何开始)

void RemovePatient(String patientName) {

}

1 个答案:

答案 0 :(得分:1)

在执行此操作时进行迭代和删除将导致并发修改异常。您可以临时保存该项目以便以后删除和删除它: 例如:

void removePatient(String patientName) {
    Person deleteThat;
    for (Patient p : ts){
       if(p.getName().equals(patientName){
           deleteThat = p;
       }
    }
    if(deleteThat != null){
        ts.remove(deleteThat);
    }
}