我想知道如何使用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;
}
答案 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);
}