Class SparseIntArray


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

      Constructors 
      Constructor Description
      SparseIntArray()
      Creates a new SparseIntArray containing no mappings.
      SparseIntArray​(int initialCapacity)
      Creates a new SparseIntArray 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, int 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 SparseIntArray.
      void delete​(int key)
      Removes the mapping from the specified key, if there was any.
      int get​(int key)
      Gets the int mapped from the specified key, or 0 if no such mapping has been made.
      int get​(int key, int valueIfKeyNotFound)
      Gets the int mapped from the specified key, or the specified value if no such mapping has been made.
      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​(int 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 SparseIntArray stores.
      void put​(int key, int 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 removeAt​(int index)
      Removes the mapping at the given index.
      int size()
      Returns the number of key-value mappings that this SparseIntArray currently stores.
      int valueAt​(int index)
      Given an index in the range 0...size()-1, returns the value from the indexth key-value mapping that this SparseIntArray stores.
      • Methods inherited from class java.lang.Object

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

      • SparseIntArray

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

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

      • get

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

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

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

        public void removeAt​(int index)
        Removes the mapping at the given index.
      • put

        public void put​(int key,
                        int 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 SparseIntArray 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 SparseIntArray stores.
      • valueAt

        public int valueAt​(int index)
        Given an index in the range 0...size()-1, returns the value from the indexth key-value mapping that this SparseIntArray 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​(int 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 SparseIntArray.
      • append

        public void append​(int key,
                           int 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.