list - Writing a ListIterator that mirrors Java's built in Iterator -


so i'm attempting mirror functionality of java's listiterator. thing i'm having trouble wrapping head around getting previous() method working correctly.

here's have.

public listiterator300<item> listiterator() {      return new listiterator300<item>() {          private node<item> n = first;              public boolean hasnext() {                  return n.next != last;             }              public item next() {                 n = n.next;                 return n.data;             }              public void remove() {             }              public boolean hasprevious() {                return n.previous != first;             }              public item previous() {                 n = n.previous;                 return n.data;             }         };     } 

so, issue i'm running having previous() , next() methods, when called subsequently, return same number. i've read built in listiterator uses cursor. there general tips how implement code?

for example

[1 2 3 4]

next() -> 1

previous() -> 1

next() -> 1

next() -> 2

instead of checking:

n.next != last; 

check:

n != last; 

and same for:

n.previous != first; 

replace with:

n != first; 

do see why ?


Comments

Popular posts from this blog

PySide and Qt Properties: Connecting signals from Python to QML -

c# - DevExpress.Wpf.Grid.InfiniteGridSizeException was unhandled -

scala - 'wrong top statement declaration' when using slick in IntelliJ -