import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.TreeSet;

/**
 * Driver class to demonstrate the use of a Comparator.
 *   @author Dave Reed
 *   @version 10/1/24
 */
public class StringDriver {
	public static void main(String[] args) {
		ArrayList<String> fruits = new ArrayList<String>();
		fruits.add("apple");
		fruits.add("date");
		fruits.add("mandarin");
		fruits.add("citron");

		TreeSet<String> fruitSet = new TreeSet<String>();
		fruitSet.addAll(fruits);
		System.out.println(fruitSet);            // in alphabetical order

		Collections.sort(fruits);
		System.out.println(fruits);              // in alphabetical order

		TreeSet<String> lenSet = new TreeSet<String>(shortestFirst);
		lenSet.addAll(fruits);
		System.out.println(lenSet);              // ordered by length

		Collections.sort(fruits, shortestFirst);
		System.out.println(fruits);              // ordered by length
	}

	///////////////////////////////////////////////////////////////////////////////

	public static Comparator<String> shortestFirst = new ShortComp();  

	private static class ShortComp implements Comparator<String> {
		public int compare(String s1, String s2) {
			return s1.length() - s2.length();
		}
	}
}
