Here is my solution to Lab 9:
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);
}
}
}
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
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);
}
}
}
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.