簡體   English   中英

IndexOf 方法 Java

[英]IndexOf method Java

我的方法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;
}}

你正在做一個引用檢查: current.getmElement() == element 你的意思是檢查這些對象是否相等:

current.getmElement().equals(element)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM