IndexOf метод Java - PullRequest
       13

IndexOf метод Java

0 голосов
/ 17 февраля 2020

Мой метод indexOf должен возвращать индекс первого вхождения указанного элемента в списке или -1, если этот список не содержит элемент. Более формально: возвращает самый низкий индекс i такой, что (E == null ? get(i) == null : E.equals(get(i))), или -1, если такого индекса нет. Проблема с этим кодом состоит в том, что он всегда возвращает -1, какие-либо предложения о том, как я могу это исправить?

 public int indexOf(E element) {

    Node current = head;
    int index = 0;
    for (int i = 0; i < size; i++) {
        if (current.getmElement() == element) {
            return index;
        }
        index++;
        current = current.getmNextNode();
    }
    return -1;
}

Я использую обобщения для поиска следующего элемента в списке:

public class Node<E> {
private E mElement;
private Node<E> mNextNode;

Node(E data) {

    this.setmElement(data);
}
public E getmElement() {
    return this.mElement;
}
public void setmElement(E element) {
    this.mElement = element;
}
public Node<E> getmNextNode()
{
    return this.mNextNode;
}
public void setmNextNode(Node<E> node)
{
    this.mNextNode = node;
}}

1 Ответ

3 голосов
/ 17 февраля 2020

Вы делаете проверку ссылки: current.getmElement() == element. Что вы хотели сделать, это проверить, равны ли эти объекты:

current.getmElement().equals(element)
...