2015-10-20 45 views
0

我想知道如何使用字符串从数组列表中删除对象。例如,我有一个学生班,当我调用remove方法时,我输入姓名和姓氏,该方法从ArrayList中删除该学生。从字符串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; 
} 

回答

3

为此,你需要重写equals方法。 必须在该名称和lname字段中进行检查。

@Override 
public boolean equals(Object obj) 
{ 

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

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

0

通过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); 
    }