Introduce ListItemIterator
This commit is contained in:
@ -1,7 +1,17 @@
|
|||||||
package aud.exam.prep.list;
|
package aud.exam.prep.list;
|
||||||
|
|
||||||
public class DoubleListItem<T> {
|
public class DoubleListItem<T> implements ListItem<T> {
|
||||||
public T key;
|
public T key;
|
||||||
public DoubleListItem<T> next;
|
|
||||||
public DoubleListItem<T> prev;
|
public DoubleListItem<T> prev;
|
||||||
|
public DoubleListItem<T> next;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T head() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListItem<T> tail() {
|
||||||
|
return next;
|
||||||
|
}
|
||||||
}
|
}
|
8
src/aud/exam/prep/list/ListItem.java
Normal file
8
src/aud/exam/prep/list/ListItem.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package aud.exam.prep.list;
|
||||||
|
|
||||||
|
public interface ListItem<T> {
|
||||||
|
|
||||||
|
T head();
|
||||||
|
|
||||||
|
ListItem<T> tail();
|
||||||
|
}
|
24
src/aud/exam/prep/list/ListItemIterator.java
Normal file
24
src/aud/exam/prep/list/ListItemIterator.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package aud.exam.prep.list;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
public class ListItemIterator<T> implements Iterator<T> {
|
||||||
|
|
||||||
|
private ListItem<T> current;
|
||||||
|
|
||||||
|
public ListItemIterator(ListItem<T> current) {
|
||||||
|
this.current = current;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
return current != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T next() {
|
||||||
|
T t = current.head();
|
||||||
|
current = current.tail();
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,17 @@
|
|||||||
package aud.exam.prep.list;
|
package aud.exam.prep.list;
|
||||||
|
|
||||||
public class SingleListItem<T> {
|
public class SingleListItem<T> implements ListItem<T> {
|
||||||
|
|
||||||
public T key;
|
public T key;
|
||||||
public SingleListItem<T> next;
|
public SingleListItem<T> next;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T head() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListItem<T> tail() {
|
||||||
|
return next;
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user