[ImageJ-devel] Simplifying loops?
Stephan Saalfeld
saalfeld at mpi-cbg.de
Mon Jun 14 13:06:57 CDT 2010
Hi,
we implement java.lang.Iterator<T extends Type<T>> where next() returns
T, so no, next() cannot return boolean, fwd() and back() might do that.
In the coming changes, Image<T> implements java.lang.Iterable<T>, such
that the Java language shortcut works:
Image< T > image;
for ( final T : image ) {
// meat of the loop
}
How's that?
Currently, Cursor<T> implements Iterable<T> such that you can do:
Cursor<T> cursor;
for (final T : cursor ) ...
instead, but that's less sensible and will not stay.
Best,
Stephan
On Mon, 2010-06-14 at 18:54 +0200, Johannes Schindelin wrote:
> Hi,
>
> On Mon, 14 Jun 2010, Stephan Preibisch wrote:
>
> > This is definitely something we could do as far as the linked iterators
> > work. Right now we did not do that because it is quite often extra work,
> > e.g. if you copy an image you need only one check instead of two:
> >
> > cursor1, cursor2;
> >
> > while ( cursor1.hasNext() )
> > {
> > cursor1.fwd();
> > cursor2.fwd();
> > // meat of the loop
> > }
>
> Ah, I see. Maybe just a shortcut
>
> public boolean next() {
> if (!hasNext())
> return false;
> fwd();
> return true;
> }
>
> to optimize for the common case?
>
> Ciao,
> Dscho
>
More information about the ImageJ-devel
mailing list