
/**
 * Title:        Chapter 19, "Java Data Structures"
 * Description:  Examples
 * Copyright:    Copyright (c) 2000
 * Company:      Armstrong Atlantic State University
 * @author Y. Daniel Liang
 * @version 1.0
 */

package chapter19;

import chapter8.*;
import java.util.*;

public class TestTreeSet
{
  public static void main(String[] args)
  {
    // Create a hash set of strings
    Set hashSet = new HashSet();
    hashSet.add("Red");
    hashSet.add("Yellow");
    hashSet.add("White");
    hashSet.add("Green");
    hashSet.add("Orange");
    hashSet.add("Gray");
    hashSet.add("Black");

    System.out.println("An unsorted set of strings");
    System.out.println(hashSet + "\n");

    // Create a sorted tree set from the hash set for strings
    Set treeSet = new TreeSet(hashSet);
    System.out.println("A sorted set of strings");
    System.out.println(treeSet + "\n");

    // Create a tree set for geometric objects using a comparator
    Set geometricObjectSet =
      new TreeSet(new GeometricObjectComparator());
    geometricObjectSet.add(new Rectangle(4, 5));
    geometricObjectSet.add(new Circle(40));
    geometricObjectSet.add(new Circle(40));
    geometricObjectSet.add(new Cylinder(4, 1));

    // Obtain an iterator for the tree set of geometric objects
    Iterator iterator = geometricObjectSet.iterator();

    // Display geometric objects in the tree set
    System.out.println("A sorted set of geometric objects");
    while (iterator.hasNext())
    {
      GeometricObject object = (GeometricObject)iterator.next();
      System.out.println(object + ", area= " + object.findArea());
    }
  }
}