使用String从ArrayList中删除

时间:2015-10-20 17:22:29

标签: java string arraylist

我想知道如何使用String从数组列表中删除对象。例如,我有一个学生班,当我调用remove方法时,我输入了姓名和姓氏,该方法将该学生从ArrayList中删除。

我已经使用异常创建了一个方法,但总是得到异常

public Student rmv(String name, String lname) throws MyException{
    if(students.contains(new Student(name, lname))){
        students.remove(new Student(name, lname));
    }else{
        throw new MyException("Doesn't exist");
    }
    return null;
}

2 个答案:

答案 0 :(得分:3)

为此,您需要覆盖equals方法。 必须检查该名称和lname字段中的位置。

@Override
public boolean equals(Object obj) 
{

   return firstName.equals(obj.firstName) &&  lastName.equals(obj.lastName);
}

如果不覆盖它,那么使用new创建的每个Student对象都应该不同。将元素插入列表后,您永远无法获得。

答案 1 :(得分:0)

contains()通过equals()方法检查列表中是否存在特定对象。 因此,您必须覆盖equals()

Student方法
@Override
    public boolean equals(Object obj) {
        // TODO Auto-generated method stub
        return this.firstName.equals(obj.firstName) && this.lastName.equals(obj.lastName);
    }