Class GrowingArrayUtils

java.lang.Object
org.oscim.layers.marker.utils.GrowingArrayUtils

public final class GrowingArrayUtils extends Object
This comes for Android API. It is used by the INT SPARSEARRAY. The Android version uses some native routines to create the arrays, I suppose for performance. However our use of this class is very basic, and we will avoid resizing the arrays as much as possible.

A helper class that aims to provide comparable growth performance to ArrayList, but on primitive arrays. Common array operations are implemented for efficient use in dynamic containers.

All methods in this class assume that the length of an array is equivalent to its capacity and NOT the number of elements in the array. The current size of the array is always passed in as a parameter.

  • Method Summary

    Modifier and Type
    Method
    Description
    static int[]
    append(int[] array, int currentSize, int element)
    Appends an element to the end of the array, growing the array if there is no more room.
    static int
    growSize(int currentSize)
    Given the current size of an array, returns an ideal size to which the array should grow.
    static int[]
    insert(int[] array, int currentSize, int index, int element)
    Inserts an element into the array at the specified index, growing the array if there is no more room.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • append

      public static int[] append(int[] array, int currentSize, int element)
      Appends an element to the end of the array, growing the array if there is no more room.
      Parameters:
      array - The array to which to append the element. This must NOT be null.
      currentSize - The number of elements in the array. Must be less than or equal to array.length.
      element - The element to append.
      Returns:
      the array to which the element was appended. This may be different than the given array.
    • insert

      public static int[] insert(int[] array, int currentSize, int index, int element)
      Inserts an element into the array at the specified index, growing the array if there is no more room.
      Parameters:
      array - The array to which to append the element. Must NOT be null.
      currentSize - The number of elements in the array. Must be less than or equal to array.length.
      element - The element to insert.
      Returns:
      the array to which the element was appended. This may be different than the given array.
    • growSize

      public static int growSize(int currentSize)
      Given the current size of an array, returns an ideal size to which the array should grow. This is typically double the given size, but should not be relied upon to do so in the future.