/** * Remove the value which is associated with the given key. If the key does not exist, this method * simply ignores the operation. * * @param key key whose associated value is to be removed */ public synchronized void remove(K key) throws IOException { V val = null; if (!recordListeners.isEmpty()) val = find(key); _root.remove(key); if (val != null) for (RecordListener<K, V> r : recordListeners) r.recordRemoved(key, val); }