code: @Override
      public boolean containsKey(Object key) {
  	Iterator<Map.Entry<K, V>> i = entrySet().iterator();
  	if (key == null) {
  	    while (i.hasNext()) {
  		Entry<K, V> e = i.next();
  		if (e.getKey() == null) return true;
  	    }
  	}
  	else {
  	    while (i.hasNext()) {
  		Entry<K, V> e = i.next();
  		if (key.equals(e.getKey())) return true;
  	    }
  	}
  	return false;
      }
docs: {@inheritDoc}
  
  <p>
  This implementation iterates over <tt>entrySet()</tt> searching for an entry with the specified
  key. If such an entry is found, <tt>true</tt> is returned. If the iteration terminates without
  finding such an entry, <tt>false</tt> is returned. Note that this implementation requires linear
  time in the size of the map; many implementations will override this method.
  
  @throws ClassCastException {@inheritDoc}
  @throws NullPointerException {@inheritDoc}