commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From scolebou...@btopenworld.com
Subject Re: [collections] LoopingIterator
Date Thu, 21 Nov 2002 11:50:56 GMT
Hmmm, yes you are right. Concurrent modifications will cause problems. The remove method on
the looping iterator can be handled however (re-check if size == 0) and set the flag.

Stephen


>  from:    Jeff Varszegi <jvarszegi@yahoo.com>
> 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>
> 


--
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