Re: iterators
Roedy Green wrote:
On Tue, 04 Aug 2009 20:09:27 -0700, Daniel Pitts
<newsgroup.spamfilter@virtualinfinity.net> wrote, quoted or indirectly
quoted someone who said :
What I would *love* is an iterator that can be made smart enough to not
throw ConcurrentModificationException if the modification can be proven
to be non-conflicting (such as appending to a list, or removing a node
from a linked-list, which is not any node being pointed to by the iterator.)
Since Iterator is an interface, and since below-average programmers
are expected to implement it, I think it important that Iterator be
kept as simple as possible. It also needs to be speedy since it is at
the core of loops. If you want to add fancy features, use a new
interface, perhaps a sub-interface of Iterator with a superset of
methods.
Uh, what I was requesting wasn't an addition to the behavior or an
Iterator, but a modification of existing behavior.
Besides, have you ever tried to create a fail-fast iterator? Look at
source-code provided for existing implementation, and you will see that
they go through a lot of hoops to *prevent* the use-case I would like,
even when it is possible (and even easy) to implement correctly.
I doubt many below-average programmers are creating Iterator
implementations (well, then again, below-average programmers do tend to
do things the hard way).
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>