private void removeEntry ( EntryImpl < K , V > entry ) { // Removes from bucket. EntryImpl < K , V > previous = entry . _previous ; EntryImpl < K , V > next = entry . _next ; if ( previous != null ) { previous . _next = next ; entry . _previous = null ; } else { // First in bucket. _entries [ entry . _index ] = next ; } if ( next != null ) { next . _previous = previous ; entry . _next = null ; } // Else do nothing, no last pointer. // Removes from collection. EntryImpl < K , V > before = entry . _before ; EntryImpl < K , V > after = entry . _after ; if ( before != null ) { before . _after = after ; entry . _before = null ; } else { // First in collection. _mapFirst = after ; } if ( after != null ) { after . _before = before ; } else { // Last in collection. _mapLast = before ; } // Clears value and key. entry . _key = null ; entry . _value = null ; // Recycles. entry . _after = _poolFirst ; _poolFirst = entry ; // Updates size. _size -- ; sizeChanged ( ) ; }
Removes the specified entry from the map .