commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Varszegi <jvarsz...@yahoo.com>
Subject Re: [collections] LoopingIterator
Date Thu, 21 Nov 2002 05:40:41 GMT
I don't see how to implement this without being horribly wasteful (checking every value in
the
collection backing the Iterator every time something is returned, getting a new Iterator every
time through the loop, etc.).  The thing is, you can't even depend on the implementation of
hashCode() when you're dealing with generic collections, the use of which would be wasteful
anyway.  Jonathan, did you find a solution to this problem?

I was going to implement a RandomIterator, but didn't figure a way around the concurrent-mod
problem for an externally created Iterator.  I think for situations like this it's acceptable
to
just notify users of the class that there are no guarantees in the face of concurrent
modification.  It's a shame that Sun didn't include a mod-check hook in the Collection interface,
or even the chance to use Observer, at least as optionally supported.  I mean, I can understand
the absence of observers, because checking for them would slow things down a little bit, but
every
single collection I've seen that came outta Sun keeps an incremental count of changes to itself.

Jeff

--- Stephen Colebourne <scolebourne@btopenworld.com> wrote:
> Jonathan,
> I was going to include your files in the CVS. However, I discovered that
> they do not cope with the situation where the collection being wrapped is
> altered. ie. hasNext() always returns the initially cached value, even if
> the list is clear()ed or it.remove() is called. Can you sort this?
> 
> Also, if resubmitting could you place the code in the correct package and
> with an Apache licence (from another collections file) to confirm that this
> is an official donation of code :-)
> 
> Thanks
> Stephen
> 
> ----- Original Message -----
> From: "Jonathan Carlson" <joncrlsn2@yahoo.com>
> > It is attached with updated unit tests.  It was so easy
> > that I'm surprised I didn't implement the remove() in the
> > first place.
> >
> > Thanks!
> >
> > Jonathan Carlson
> > Minneapolis, Minnesota
> >
> >
> > --- Stephen Colebourne <scolebourne@btopenworld.com> wrote:
> > > From: "Jonathan Carlson" <joncrlsn2@yahoo.com>
> > > > I can add a remove method and test cases unless it's
> > > easier
> > > > for you to just add it.  I think it would just use the
> > > > remove method on the Collection.  If the iterator
> > > returned
> > > > by the Collection implementer doesn't support it then
> > > this
> > > > won't either.
> > >
> > > If you could submit the revised code and test case, I
> > > think that I'm willing
> > > to commit it to collections.
> > >
> > > Stephen
> > >
> > >
> > > > As for a use-case, I am using it for a displaying a
> > > number
> > > > of our banner ads on our e-commerce site.  The
> > > round-robin
> > > > task dispatcher mentioned earlier is another one.
> > > >
> > > > Jonathan Carlson
> > > >
> > > >
> > > >
> > > > --- Stephen Colebourne <scolebourne@joda.org> wrote:
> > > > > [Jonathan, I have sent back to commons-dev mailing
> > > list
> > > > > which is the
> > > > > appropriate place for design/code discussions.]
> > > > >
> > > > > I took a quick look, and I believe that the code in
> > > the
> > > > > zip will work.
> > > > > However, my main concern is why this would be needed.
> > > Is
> > > > > there a use case
> > > > > for an iterator that never ends?
> > > > >
> > > > > I would also like to see the remove method
> > > implemented.
> > > > > It should be
> > > > > possible.
> > > > >
> > > > > Stephen
> > > > >
> > > > > ----- Original Message -----
> > > > > From: "Jonathan Carlson" <joncrlsn2@yahoo.com>
> > > > > To: <scolebourne@joda.org>
> > > > > Sent: Friday, October 18, 2002 3:53 PM
> > > > > Subject: LoopingIterator
> > > > >
> > > > >
> > > > > > Hi Stephen,
> > > > > >
> > > > > > Thanks for your work on the IteratorUtils.  I
> > > thought
> > > > > this
> > > > > > might be a good addition if it hasn't been added
> > > > > already.
> > > > > > It's an iterator that loops continually.
> > > > > Unfortunately, it
> > > > > > can't just decorate another iterator but has to
> > > wrap a
> > > > > > collection due to the fact that iterators cannot be
> > > > > reset
> > > > > > to the beginning of the collection.
> > > > > >
> > > > > > Included is a jUnit test case that shows it works
> > > "as
> > > > > > advertised".  Hope this helps.
> > > > > >
> > > > > > Jonathan Carlson
> > > > > > Minneapolis, Minnesota
> > > > > >
> > > > > >
> > > > > > =====
> > > > > > Jonathan Carlson
> > > > > > joncrlsn@users.sf.net
> > > > > > Minneapolis, Minnesota
> > > > > >
> > > > > > __________________________________________________
> > > > > > Do you Yahoo!?
> > > > > > Faith Hill - Exclusive Performances, Videos & More
> > > > > > http://faith.yahoo.com
> > > > >
> > > >
> > > > > ATTACHMENT part 2 application/x-zip-compressed
> > > > name=LoopingIterator.zip
> > > >
> > > >
> > > >
> > > > =====
> > > > Jonathan Carlson
> > > > joncrlsn@users.sf.net
> > > > Minneapolis, Minnesota
> > > >
> > > > __________________________________________________
> > > > Do you Yahoo!?
> > > > HotJobs - Search new jobs daily now
> > > > http://hotjobs.yahoo.com/
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > > <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> > > > For additional commands, e-mail:
> > > <mailto:commons-dev-help@jakarta.apache.org>
> > > >
> > >
> >
> >
> >
> > =====
> > Jonathan Carlson
> > joncrlsn@users.sf.net
> > Minneapolis, Minnesota
> >
> > __________________________________________________
> > Do you Yahoo!?
> > HotJobs - Search new jobs daily now
> > http://hotjobs.yahoo.com/
> 
> 
> ----------------------------------------------------------------------------
> ----
> 
> 
> > --
> > To unsubscribe, e-mail:
> <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> <mailto:commons-dev-help@jakarta.apache.org>
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message