import java.util.*;
public class ComparatorTest {
public static void main(String[] args) {
Vector<DataStore> v = new Vector<DataStore>();
populateVector(v);
print(v, "Unsorted:");
Collections.sort(v, numberComparator);
print(v, "Sorted:");
}
private static void populateVector(Vector<DataStore> v) {
Random seed = new Random();
v.add(new DataStore("Sean", "Dunston ", seed.nextInt(100)));
v.add(new DataStore("Vera", "Hastings", seed.nextInt(100)));
v.add(new DataStore("Mary", "Bangor ", seed.nextInt(100)));
v.add(new DataStore("Eric", "Norwich ", seed.nextInt(100)));
}
private static void print(Vector<DataStore> v, String s) {
System.out.println(s);
for(DataStore store : v) {
System.out.println(store);
}
System.out.println("-------------------");
}
// javac -Xlint:unchecked comparatortest.java
private static Comparator<DataStore> numberComparator =
new Comparator<DataStore>() {
public int compare(DataStore ds1, DataStore ds2) {
int sn1 = ds1.serialNumber;
int sn2 = ds2.serialNumber;
return (sn1 < sn2) ? -1 : (sn1 > sn2) ? 1 : 0;
}
};
}
class DataStore {
String name;
String city;
int serialNumber;
DataStore(String name, String city, int sn) {
this.name = name;
this.city = city;
serialNumber = sn;
}
public String toString() {
return getClass().getName() +
"[name:" + name +
" city:" + city +
" serialNumber:" + serialNumber + "]";
}
}