import java.util.*;

public class MondoHashTable implements Map {
  /**
   * public Object put(Object key, Object value)
   *
   * Associates the specified value with the specified key in this map 
   * (optional operation). If the map previously contained a mapping for this 
   * key, the old value is replaced by the specified value. (A map m is said 
   * to contain a mapping for a key k if and only if m.containsKey(k) would 
   * return true.)) 
   * Returns previous value associated with specified key, or null if there 
   * was no mapping for key. A null return can also indicate that the map 
   * previously associated null with the specified key, if the implementation 
   * supports null values. 
   *
   * Throws: 
   * UnsupportedOperationException - if the put operation is not supported 
   * by this map. 
   * ClassCastException - if the class of the specified key or value prevents 
   * it from being stored in this map. 
   * IllegalArgumentException - if some aspect of this key or value prevents it 
   * from being stored in this map. 
   * @param - Object key, Object value
   * @return - returns the key just inserted
   *
   * @throws NullPointerException - this map does not permit null keys or values, 
   * and the specified key or value is null.
   */	
  
  public Object put(Object key, Object value) {
    if (key==null || value==null)
      {
	throw new NullPointerException();
      }
    else
      {
	String s = (String)key;
	Integer I = (Integer)value;
	int i = I.intValue();
	int myCode = Math.abs(s.hashCode());
	int arrayPos = (myCode % HashTableSize);
	// etc...
      }
  }
}
