there class implementing interface selector. should use iterator() in methods.
private class sequenceselector implements selector { private t obj = items.iterator().next(); public boolean end() { return !items.iterator().hasnext(); } public t current() { return obj; } public void next() { obj = items.iterator().next(); } } items arraylist. obj value in order save first sequence member before first next() using.
with following code program goes infinite loop in printed first member of sequence.
while(!selector.end()) { system.out.print(selector.current() + " "); selector.next(); } why happens? though use next() method, iterator doesn't move.
every time call items.iterator() create new iterator.
create 1 iterator @ start, , use repeatedly.
private class sequenceselector implements selector { private final iterator<t> iterator = items.iterator(); private t obj = iterator.next(); public boolean end() { return !iterator.hasnext(); } public t current() { return obj; } public void next() { obj = iterator.next(); } }
Comments
Post a Comment