question: @ SuppressWarnings ( "unchecked" ) @ Override public V remove ( Object key ) { java . lang . Comparable < K > object = comparator == null ? toComparable ( ( K ) key ) : null ; if ( size == 0 ) { return null ; } K keyK = ( K ) key ; Node < K , V > node = root ; while ( node != null ) { K [ ] keys = node . keys ; int left_idx = node . left_idx ; int result = cmp ( object , keyK , keys [ left_idx ] ) ; if ( result < 0 ) { node = node . left ; } else if ( result == 0 ) { V value = node . values [ left_idx ] ; removeLeftmost ( node ) ; return value ; } else { int right_idx = node . right_idx ; if ( left_idx != right_idx ) { result = cmp ( object , keyK , keys [ right_idx ] ) ; } if ( result > 0 ) { node = node . right ; } else if ( result == 0 ) { V value = node . values [ right_idx ] ; removeRightmost ( node ) ; return value ; } else { int low = left_idx + 1 , mid = 0 , high = right_idx - 1 ; while ( low <= high ) { mid = ( low + high ) > > > 1 ; result = cmp ( object , keyK , keys [ mid ] ) ; if ( result > 0 ) { low = mid + 1 ; } else if ( result == 0 ) { V value = node . values [ mid ] ; removeMiddleElement ( node , mid ) ; return value ; } else { high = mid - 1 ; } } return null ; } } } return null ; }
target:  Removes the mapping with the specified key from this map.