2016-03-21 4 views
-1

У меня есть способ удалить объект типа Ping из списка массивов с помощью итератора, но он, похоже, не удаляет объект.Почему это не удаляется?

public void remover(String a){ 
    Iterator<Ping> it = listOfSharkNames.iterator(); 
    while (it.hasNext()) { 
     Ping user = it.next(); 
     System.out.println(user.getName()); 

     if (user.getName().equals("Daymond")) { 

     }else{ 
     it.remove(); 
     } 
    } 
} 

и результат

Finley 
Bill Nye 
Buddy 
Buddy 
Mary Lee 
Daymond 

Я понимаю, что это может быть простым, но для жизни меня я не могу видеть, что случилось

+0

Вы пробовали отладчик, чтобы проверить, что произойдет, когда вы введете блок 'else'? –

+0

Вы печатаете элементы в цикле, где вы делаете удаление. Вы пытались распечатать список еще раз? –

ответ

4

Вы распечатываете имя, прежде чем решить, следует ли удалить его или нет. Распечатайте содержимое List после того, как соответствующие записи были удалены.

+0

Точно то, что я думал, происходит. –

0

Распечатайте список после удаления элемента. В настоящее время вы печатаете перед удалением элементов.

Смежные вопросы