removeFirstOccurence () Java - PullRequest
       5

removeFirstOccurence () Java

1 голос
/ 03 марта 2020
link.removeFirstOccurrence(new Integer(9));

Это то, чего хочет мой профессор, но это работает только тогда, когда я передаю значения вроде link.removeFirstOccurrence(9);. Любой совет?

public boolean removeFirstOccurrence(Object obj) { 
    DNode<E> current = head;
    DNode<E> temp = null;

    if(current != null && current.data == obj) {
        head = current.next;
        return true;

    }
    while(current != null && current.data != obj) {
        temp = current;
        current = current.next;
    }
     if(current == null) {
         return false;
     }

     temp.next = current.next;
     current.next.previous = current.previous;

     return true;
  }

1 Ответ

0 голосов
/ 03 марта 2020

В вашем коде проблема с Java Сравнение объектов. Для сравнения значений вы можете использовать оператор "==" для примитивного типа данных, но вы должны использовать метод equals () для не примитивных типов данных

Ниже приведен обновленный код:

public boolean removeFirstOccurrence(Object obj) {
    DNode<E> current = head;
    DNode<E> temp = null;

    if (current != null && current.data != null && current.data.equals(obj)) {
        head = current.next;
        return true;

    }
    while (current != null && current.data != null && !current.data.equals(obj)) {
        temp = current;
        current = current.next;
    }
    if (current == null || current.data == null) {
        return false;
    }

    temp.next = current.next;
    current.next.previous = current.previous;

    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...