code: public void add(K key, V value)
    {
      if (key == null) {
        return;
      }
  
      K []keys = _keys;
      final int size = _size;
      
      for (int i = size - 1; i >= 0; i--) {
        if (key.equals(keys[i])) {
          _values[i].add(value);
          return;
        }
      }
  
      if (! ensureCapacity(size)) {
        return;
      }
      
      _keys[size] = key;
      _values[size] = new ArrayList<V>();
      _values[size].add(value);
      
      _size = size + 1;
    }
docs: Puts a new item in the cache.
  
  @param key key to store data
  @param value value to be stored
  
  @return old value stored under the key