code: public void append(int key, int value) {
          if (mSize != 0 && key <= mKeys[mSize - 1]) {
              put(key, value);
              return;
          }
  
          int pos = mSize;
          if (pos >= mKeys.length) {
              int n = ArrayUtils.idealIntArraySize(pos + 1);
  
              int[] nkeys = new int[n];
              int[] nvalues = new int[n];
  
              // Log.e("SparseIntArray", "grow " + mKeys.length + " to " + n);
              System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
              System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
  
              mKeys = nkeys;
              mValues = nvalues;
          }
  
          mKeys[pos] = key;
          mValues[pos] = value;
          mSize = pos + 1;
      }
docs: Puts a key/value pair into the array, optimizing for the case where
  the key is greater than all existing keys in the array.