code: @SuppressWarnings("unchecked")
      @Override
      public V remove(Object key) {
          LinkedHashMapSegment<K, V> seg = segmentFor(key.hashCode());
          try {
              seg.lock.lock();
              return mapEventListener.onRemoveEntry((K) key, seg.remove(key));
          } finally {
              seg.lock.unlock();
          }
      }
docs: Remove a entry from this map. The removing event will be called.
  
  @param key key whose mapping is to be removed from the map
  @return the previous value associated with <tt>key</tt>, or
  <tt>null</tt> if there was no mapping for <tt>key</tt>.