I've wrote an update to the post where someone suggested in a trackback to use the JDK for an one element iterator.
I got interested in aa OneElementIterator, which optimized - not sure how fast try
is - could look like this:
public class OneElementIterator[T] implements Iterator[T] { private T element; public OneElementIterator(T element) { this.element = element; } public boolean hasNext() { return element != null; } public T next() { try { return element; } finally { element = null; } }
Faster and shorter ideas?
Update: Remove got lost during cut & paste:
public void remove() { // not supported, throw exception throw new UnsupportedOperationException("Remove not supported in OneElementIterator"); }
And as Eugene noted next()
should throw NoSuchElementException
.
Stephan Schmidt
Administrator
Stephan is a CTO coach. He has been a coder since the early 80s, has founded several startups and worked in small and large companies as CTO. After he sold his latest startup he took up CTO coaching. He can be found on LinkedIn or follow him in Twitter.
email