Re: Snapshot of List [Was: Re: sync on local variable]
On 26-03-2010 10:22, Eric Sosman wrote:
On 3/25/2010 3:28 PM, Daniel Pitts wrote:
On 3/25/2010 11:06 AM, Eric Sosman wrote:
>> [... about iterating over a changing List ...]
to keep the
iteration self-consistent you might want to do something like
lock ALL_ROWS, grab a snapshot with toArray(), unlock, and run
the iteration on the (private, stable) snapshot.
>
I agree except, don't use toArray, use new ArrayList<Row>();
Not confrontational, just curious: Why prefer a new ArrayList
to an array? To me, it appears that an ArrayList is just an array
wrapped up in extra machinery, and I can't see that the machinery
adds any value for this usage. So, why pay the extra freight?
What am I missing?
As a general rule:
know that more functionality than array will be needed in the future =>
pick ArrayList
know that more functionality than array will NOT be needed in the future
=> pick array
don't know if more functionality than array will be needed in the future
=> pick ArrayList
My assumption would be that in the real world that would be 10%-10%-80%.
Obviously you can argue that this seems fell in category #2.
Arne