2015-11-05 94 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