package java.util;

import java.io.*;
///*sk13*/import java.util.Hashtable;

public class HashSet extends /*sk13*/AbstractSet
    /*sk13*/ /*extends Hashmap*/

{
		private HashMap m_HashMap=null;

		public HashSet()
			{
				m_HashMap=new HashMap();

			}

		public HashSet(Collection c)
			{
				m_HashMap=new HashMap(Math.max(11,c.size()*2));
				addAll(c);

			}

		public HashSet(int initialCapacity, float loadFactor)
			{
				m_HashMap=new HashMap(initialCapacity,loadFactor);

			}

		public HashSet(int initialCapacity)
			{
				m_HashMap=new HashMap(initialCapacity);

			}

    public Iterator iterator()
      {
         return (m_HashMap.keySet()).iterator();
			}

		public int size()
			{
				return m_HashMap.size();
			}

	   public boolean contains(Object o)
      {
			  return m_HashMap.containsKey(o);
			}

	public boolean add(Object  o)
    {
        if (!m_HashMap.containsValue(o))
        {
            m_HashMap.put(o, o);

            return true;

        }

        return false;
    }

		public boolean remove(Object o)
			{
				return (m_HashMap.remove(o)!=null);
			}

		public void clear()
			{
				m_HashMap.clear();
			}


		public Object clone()
			{
				HashSet hs=new HashSet();
				hs.m_HashMap=(HashMap)m_HashMap.clone();
			  return hs;
			}

}
