Return to the Section 101 Homepage.


Lab 9 (07-25)

Here is my solution to Lab 9:

HashSetTest.java
import java.util.*;

public class HashSetTest
{
      private static final boolean debug = true;
      
      public static void main(String[] args)
      {
         Random rnd = new Random();
         HashSet hs = new HashSet();
         int numItems;
         
         if (args.length > 0)
         {
            numItems = Integer.parseInt(args[0]);
         }
         else
         {
            numItems = 1000;
         }

         // My code (just the next line)
         Date startInsertTime = new Date();

         for (int i = 0; i < numItems; i++)
         {
            hs.add(new Integer(rnd.nextInt()));
         }

         // My code (from here on)
         Date endInsertTime = new Date();
         
         System.out.println("Insert time = " +
                            (endInsertTime.getTime() -
                             startInsertTime.getTime()));

         log("HashSet is of size: " + hs.size());
         
         Date startSearchTime = new Date();

         Iterator hashScanner = hs.iterator();

         int lowestValue = Integer.MAX_VALUE;
         int highestValue = Integer.MIN_VALUE;

         while (hashScanner.hasNext())
         {
            Integer currentInteger = (Integer)(hashScanner.next());
            int currentValue = currentInteger.intValue();

            if (currentValue < lowestValue)
            {
               lowestValue = currentValue;
            }
            
            if (currentValue > highestValue)
            {
               highestValue = currentValue;
            }
         }

         Date endSearchTime = new Date();

         System.out.println("Highest value = " + highestValue +
                            ", lowest value = " + lowestValue);
         System.out.println("Search time = " + (endSearchTime.getTime() -
                                                startSearchTime.getTime()));
         // End of my code
      }
      
      private static void log(String str)
      {
         if (debug)
         {
            System.out.println(str);
         }
      }
}

Output:
Insert time = 12
HashSet is of size: 1000
Highest value = 2141392018, lowest value = -2145002718
Search time = 5

Insert time = 111
HashSet is of size: 10000
Highest value = 2147458989, lowest value = -2146716334
Search time = 40

Insert time = 316
HashSet is of size: 99998
Highest value = 2147401918, lowest value = -2147348730
Search time = 103

Insert time = 3678
HashSet is of size: 999898
Highest value = 2147480083, lowest value = -2147475879
Search time = 463
TreeSetTest.java
import java.util.*;

public class TreeSetTest
{
      private static final boolean debug = true;
      
      public static void main(String[] args)
      {
         Random rnd = new Random();
         TreeSet ts = new TreeSet();
         int numItems;
         
         if (args.length > 0)
         {
            numItems = Integer.parseInt(args[0]);
         }
         else
         {
            numItems = 1000;
         }

         // My code (just the next line)
         Date startInsertTime = new Date();
         
         for (int i = 0; i < numItems; i++)
         {
            ts.add(new Integer(rnd.nextInt()));
         }

         // My code (from here on)
         Date endInsertTime = new Date();

         System.out.println("Insert time = " +
                            (endInsertTime.getTime() -
                             startInsertTime.getTime()));

         log("TreeSet is of size: " + ts.size());
         
         Date startSearchTime = new Date();
         
         Integer lowestInteger = (Integer)(ts.first());
         int lowestValue = lowestInteger.intValue();
         Integer highestInteger = (Integer)(ts.last());
         int highestValue = highestInteger.intValue();

         Date endSearchTime = new Date();

         System.out.println("Highest value = " + highestValue +
                            ", lowest value = " + lowestValue);
         System.out.println("Search time = " + (endSearchTime.getTime() -
                                                startSearchTime.getTime()));
         // End of my code
      }
      
      private static void log(String str)
      {
         if (debug) {
            System.out.println(str);
         }
      }
}

Output:
Insert time = 31
TreeSet is of size: 1000
Highest value = 2140600442, lowest value = -2145714567
Search time = 0

Insert time = 128
TreeSet is of size: 10000
Highest value = 2147255483, lowest value = -2147473613
Search time = 0

Insert time = 380
TreeSet is of size: 99999
Highest value = 2147302943, lowest value = -2147454083
Search time = 0

Insert time = 5967
TreeSet is of size: 999886
Highest value = 2147482634, lowest value = -2147477403
Search time = 0



Return to the Section 101 Homepage.