Using hand-crafted code, you can control how much your backing array
grows -- I suspect ARRAY_CAPACITY_INCREMENT is quite a big number.

Cheers

On Fri, Apr 3, 2009 at 1:44 PM, [email protected]
<[email protected]> wrote:
>
> I notice in the source code they are not used in critical loops, e.g.
> in View.java :
> http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/view/ViewGroup.java;h=e686d1c20bd21eaa050ff3bf9187b549ee7b1355;hb=HEAD
>
> I can see this kind of code which would be much easier implemented as
> an ArrayList :
>
> 1867     private void addInArray(View child, int index) {
> 1868         View[] children = mChildren;
> 1869         final int count = mChildrenCount;
> 1870         final int size = children.length;
> 1871         if (index == count) {
> 1872             if (size == count) {
> 1873                 mChildren = new View[size +
> ARRAY_CAPACITY_INCREMENT];
> 1874                 System.arraycopy(children, 0, mChildren, 0,
> size);
> 1875                 children = mChildren;
> 1876             }
> 1877             children[mChildrenCount++] = child;
> 1878         } else if (index < count) {
> 1879             if (size == count) {
> 1880                 mChildren = new View[size +
> ARRAY_CAPACITY_INCREMENT];
> 1881                 System.arraycopy(children, 0, mChildren, 0,
> index);
> 1882                 System.arraycopy(children, index, mChildren,
> index + 1, count - index);
> 1883                 children = mChildren;
> 1884             } else {
> 1885                 System.arraycopy(children, index, children, index
> + 1, count - index);
> 1886             }
> 1887             children[index] = child;
> 1888             mChildrenCount++;
> 1889         } else {
> 1890             throw new IndexOutOfBoundsException("index=" + index
> + " count=" + count);
> 1891         }
> 1892     }
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to