Class SparseArray<E>


  • public class SparseArray<E>
    extends java.lang.Object
    SparseArrays map integers to Objects. Unlike a normal array of Objects, there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Integers to Objects.
    • Constructor Summary

      Constructors 
      Constructor Description
      SparseArray()
      Creates a new SparseArray containing no mappings.
      SparseArray​(int initialCapacity)
      Creates a new SparseArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void append​(int key, E value)
      Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
      void clear()
      Removes all key-value mappings from this SparseArray.
      void delete​(int key)
      Removes the mapping from the specified key, if there was any.
      E get​(int key)
      Gets the Object mapped from the specified key, or null if no such mapping has been made.
      E get​(int key, E valueIfKeyNotFound)
      Gets the Object mapped from the specified key, or the specified Object if no such mapping has been made.
      SparseArray<E> getUnmodifiable()  
      int indexOfKey​(int key)
      Returns the index for which keyAt(int) would return the specified key, or a negative number if the specified key is not mapped.
      int indexOfValue​(E value)
      Returns an index for which valueAt(int) would return the specified key, or a negative number if no keys map to the specified value.
      int keyAt​(int index)
      Given an index in the range 0...size()-1, returns the key from the indexth key-value mapping that this SparseArray stores.
      void put​(int key, E value)
      Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
      void remove​(int key)
      Alias for delete(int).
      void setValueAt​(int index, E value)
      Given an index in the range 0...size()-1, sets a new value for the indexth key-value mapping that this SparseArray stores.
      int size()
      Returns the number of key-value mappings that this SparseArray currently stores.
      E valueAt​(int index)
      Given an index in the range 0...size()-1, returns the value from the indexth key-value mapping that this SparseArray stores.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SparseArray

        public SparseArray()
        Creates a new SparseArray containing no mappings.
      • SparseArray

        public SparseArray​(int initialCapacity)
        Creates a new SparseArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
    • Method Detail

      • get

        public E get​(int key)
        Gets the Object mapped from the specified key, or null if no such mapping has been made.
      • get

        public E get​(int key,
                     E valueIfKeyNotFound)
        Gets the Object mapped from the specified key, or the specified Object if no such mapping has been made.
      • delete

        public void delete​(int key)
        Removes the mapping from the specified key, if there was any.
      • remove

        public void remove​(int key)
        Alias for delete(int).
      • put

        public void put​(int key,
                        E value)
        Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
      • size

        public int size()
        Returns the number of key-value mappings that this SparseArray currently stores.
      • keyAt

        public int keyAt​(int index)
        Given an index in the range 0...size()-1, returns the key from the indexth key-value mapping that this SparseArray stores.
      • valueAt

        public E valueAt​(int index)
        Given an index in the range 0...size()-1, returns the value from the indexth key-value mapping that this SparseArray stores.
      • setValueAt

        public void setValueAt​(int index,
                               E value)
        Given an index in the range 0...size()-1, sets a new value for the indexth key-value mapping that this SparseArray stores.
      • indexOfKey

        public int indexOfKey​(int key)
        Returns the index for which keyAt(int) would return the specified key, or a negative number if the specified key is not mapped.
      • indexOfValue

        public int indexOfValue​(E value)
        Returns an index for which valueAt(int) would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
      • clear

        public void clear()
        Removes all key-value mappings from this SparseArray.
      • append

        public void append​(int key,
                           E value)
        Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.