/**
 * An interface for a hashtable
 **/
public interface HashTable {
	/**
 	 * check whether the hashtable is empty
 	 */ 
	public boolean isEmpty();

	/**
 	 * check whether the hashtable contains a specific key
 	 */
	public boolean has(Object key);
	
	/**
 	 *  get the object associated with a specific key
 	 * @throws java.util.NoSuchElementException
 	 * 	if the specified key is not in the hashtable
 	 */ 
	public Object get(Object key);
	
	/**
 	 *  remove the object associated with a specific key
 	 * @throws java.util.NoSuchElementException
 	 * 	if the specified key is not in the hashtable
 	 */ 
	public Object remove(Object key);
	
	/**
 	 * Add key to the hashtable and associate it with value
 	 */
	public void put(Object key, Object value);
	
	/**
 	 * Return the number of keys in the hashtable
 	 */ 
	public int entries();
	
	/**
 	 * Return the array of keys in the hashtable
 	 */ 
	public Object[] keys();

}
