2015-10-20 3 views
0

Мне было интересно, как удалить объект из списка массивов с помощью String. Например, у меня есть класс со студентами, и когда я вызываю метод remove, я ввожу имя и фамилию, и метод удаляет этого ученика из ArrayList.Удалить из ArrayList со String

Я уже сделал метод, использующий исключение, но всегда получаю исключение

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. Где должно быть указано имя и имя поля.

@Override 
public boolean equals(Object obj) 
{ 

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

Если вы не переопределите его, каждый объект-ученик, созданный с использованием new, будет отличаться. И после вставки элемента в список, вы никогда не сможете это получить.

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); 
    } 
Смежные вопросы