question: public void put ( int key , E value ) { int i = ContainerHelpers . binarySearch ( mKeys , mSize , key ) ; if ( i >= 0 ) { mValues [ i ] = value ; } else { i = ~ i ; if ( i < mSize && mValues [ i ] == DELETED ) { mKeys [ i ] = key ; mValues [ i ] = value ; return ; } if ( mGarbage && mSize >= mKeys . length ) { gc ( ) ; i = ~ ContainerHelpers . binarySearch ( mKeys , mSize , key ) ; } if ( mSize >= mKeys . length ) { int n = ContainerHelpers . idealIntArraySize ( mSize + 1 ) ; int [ ] nkeys = new int [ n ] ; Object [ ] nvalues = new Object [ n ] ; System . arraycopy ( mKeys , 0 , nkeys , 0 , mKeys . length ) ; System . arraycopy ( mValues , 0 , nvalues , 0 , mValues . length ) ; mKeys = nkeys ; mValues = nvalues ; } if ( mSize - i != 0 ) { System . arraycopy ( mKeys , i , mKeys , i + 1 , mSize - i ) ; System . arraycopy ( mValues , i , mValues , i + 1 , mSize - i ) ; } mKeys [ i ] = key ; mValues [ i ] = value ; mSize ++ ; } }
target:  Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.