// TreeMap and HashMap works exactly the same
// member functions are the same - just swith the class Type


import java.util.*;

  class phoneHash
  {HashMap t = new HashMap();

    public void adder(String n, String p)
     {t.put(n,p);
     }

     public String getPhone(String n)
      {return (String)t.get(n);
      }
       public void printAll()
        {Set s = t.keySet();    // note we had to use a Set because no iterator for Map
        Iterator i = s.iterator();
         while (i.hasNext())
          {System.out.println(i.next());
       }
     }
  public void print2()
   {Set s = t.keySet();
    System.out.println(s);  // prints out keyset in [ ]
  }


      public boolean contains(String n)
        {
        return t.containsKey(n);
         }
   }
____________________________________


import java.io.*;
  import java.util.*;

  public class driverHash
  {public static input in = new input();

  public static void main(String[] args) throws IOException
   {phoneHash p = new phoneHash();
   String s;
    p.adder("Jack","452,0236");
     p.adder("Tom","336-3232");
      p.adder("Steve","234-2123");

     System.out.println("Names on file are :");
       p.printAll();  // not preorder traversal of binary search tree

       System.out.println("Names on file are :");
        p.print2();  // not preorder traversal of binary search tree


    System.out.println("Enter name to find ");
      s= in.getString();

     if (p.contains(s))
      {
      String ph = p.getPhone(s);
      System.out.println("Phone # is "+ph);
       }
      else
       System.out.println("Name not on file ");
}}