Re: setSize ArrayList, when will it come?
On 8/10/2011 2:04 AM, Jan Burse wrote:
Joshua Cranmer schrieb:
Or you could use addAll and Collections.nCopies to implement setSize,
and use ListIterator to do reverse iteration.
No you didn't get it. I need a fast specialized
setSize() as argued in the bug reference. According
to the collections documentation, the nCopies method
does create an extra object:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#nCopies%28int,%20java.lang.Object%29
... The newly allocated data object is tiny (it contains
a single reference to the data object). ...
But it is not only that this tiny object of type
Collections.CopiesList will be created. For addAll
call an Iterator AbstractList.Itr will be
created I guess, not sure.
Okay, if you're so annoyed about the creation of several objects, you
can create your own version of a CopiesList that implements both
Collection and Iterator and implements everything on itself, for a
single overhead of around 12 bytes. If that is still too much, run a
garbage collection. You now have a few hundred extra kilobytes of data.
If you're still complaining, you're using the wrong language.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth