<< Chapter < Page | Chapter >> Page > |
Listing 1 . The program named Comparator03. |
---|
//File Comparator03.java
//Copyright 2001 R.G.Baldwinimport java.util.*;
import java.io.Serializable;public class Comparator03{
public static void main(String args[]){
new Worker().doIt();}//end main()
}//end class Comparator03class Worker{
public void doIt(){Iterator iter;
Collection ref;System.out.println("Natural ordering");
ref = new TreeSet();Populator.fillIt(ref);
iter = ref.iterator();while(iter.hasNext()){
System.out.print(iter.next() + " ");}//end while loop
System.out.println();System.out.println("Comparator in use");
ref = new TreeSet(new TheComparator());Populator.fillIt(ref);
iter = ref.iterator();while(iter.hasNext()){
System.out.print(iter.next() + " ");}//end while loop
System.out.println();}//end doIt()
}// end class Workerclass Populator{
public static void fillIt(Collection ref){ref.add("Joe");
ref.add("Bill");ref.add("Tom");
ref.add("JOE");ref.add("BILL");
ref.add("TOM");}//end fillIt()
}//end class Populatorclass TheComparator
implements Comparator,Serializable{public int compare(Object o1,Object o2){
if(!(o1 instanceof String))throw new ClassCastException();
if(!(o2 instanceof String))throw new ClassCastException();
//Do an upper-case comparisonint result =
((String)o1).toUpperCase().compareTo(((String)o2).
toUpperCase());return result;
}//end compare()public boolean equals(Object o){
if(!(o instanceof TheComparator))return false;
else return true;}//end overridden equals()
}//end class TheComparator |
If your answer was None of the above , you are correct.
The output produced by the program shown in Listing 1 is four lines long as shown below. (Note that the bullets shown below do not appear in the actual program output.)
In the previous module, I introduced you to the essentials of defining and using a Comparator for controlling the sort order of the elements contained in a TreeSet collection.
In that module, I explained the difference between natural ordering and the sort ordering produced through the use of a Comparator object.
However, what I showed you generally replicated the natural ordering , and therefore, wasn't too exciting.
In this and several subsequent modules, I am going to show you some of the things that you can do with a Comparator object. By using a Comparator object, you can achieve comparisons and sort orders that are different from the natural ordering for a given element type.
The program shown in Listing 1 goes through two major steps.
First it populates a TreeSet collection with the names of six people without using a Comparator . Then it displays the contents of that collection using an iterator. That produces the following output (without the bullets) :
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?