2015-11-05 98 views
0

下面是在單向鏈表清單迭代器中實現hasNext方法的代碼,但我不明白爲什麼要以這種方式實現此方法。如何在java中的sinlgly linkedlist iterator中實現hasNext方法?

private class LinkedListIterator implements ListIterator 
{ 
    . . . 
    public boolean hasNext() 
    { 
     if (position == null) 
     return first != null; 
     else 
     return position.next != null; 
    } 
    . . . 
} 

我可以用下面的方法做到這一點嗎?

private class LinkedListIterator implements ListIterator 
{ 
    . . . 
    public boolean hasNext() 
    { 
     if (position.next == null) 
     return false; 
     else 
     return true; 
    } 
    . . . 
} 

回答

0

你可以這樣做。這取決於課程的其他部分。如果你有一個代表第一個元素之前位置的「虛擬」節點,你可以用第二種方法來完成。如果該位置由position == null表示,則必須以第一種方式進行。就我個人而言,我更喜歡虛擬節點方法,以便您不必擔心檢查null