Comparator in the driver
This driver is horribly embarrassing, but leaving aside its jumbledness,
why is the Comparator not sorting? I want to sort guestsByCity using the
Comparator BY_CITY.
Basically, various representations of a collection of Guest instances is
the requirement.
I do have a GuestSort class with the Comparator, but couldn't get it to
compile, so stuck it in the driver:
thufir@arrakis:~/bcit-comp2611-lab3$
thufir@arrakis:~/bcit-comp2611-lab3$ cat src/a00720398/labs/Lab3.java
/**
* Lab3.java
* this class is far too full.
*/
package a00720398.labs;
import a00720398.data.*;
import a00720398.util.*;
import java.util.*;
public class Lab3
{
private final static String[][]
GUEST_DATA = {
{ "Lee", "Brenda", "(604) 636-1000", "b.lee@bcit.ca" },
{ "Sullivan", "Sam", "604-873-7011",
"Sam777@hotmail.com" },
{ "Johansen", "Lars", "(604) 636-1000",
"Lars147@gmail.com" }},
ADDRESS_DATA = {
{ "3700 Willingdon Avenue", "Burnaby", "British
Columbia", "V5G 3H2", "Canada" },
{ "453 West 12th Avenue", "Vancouver", "BC", "V5Y 1V4",
"Canada" },
{ "1000 Lougheed Highway", "Coquitlam", "British
Columbia","V3K 3T5", "Canada" } };
private static List<Guest> guestList;
private static List<Guest> guestListByName;
private static Map<String,Guest> guestMap = new
HashMap<String,Guest>();
private static Set<Guest> noDups;
// private static SortedSet<Guest> guestsByCity;
private static List<Guest> guestsByCity;
public static void loadGuestList(){
int i=0;
guestList = new ArrayList<Guest>();
for(String[] info : GUEST_DATA){
ContactInfo contactInfo = new ContactInfo
(GUEST_DATA[i],ADDRESS_DATA[i]);
Guest guest = new Guest(contactInfo);
guestList.add(guest);
i++;
}
}
public static void loadGuestMap(){
for (Guest guest : guestList){
ContactInfo contactInfo = guest.getContactInfo();
String postalCode = contactInfo.getPostalCode();
guestMap.put(postalCode,guest);
}
}
private static void printGuestMap(){}
private static void loadGuestListByName(){
guestListByName = guestList;
}
private static void loadGuestByCity(){
// guestsByCity = CollectionUtil.listToSet(guestListByName);
guestsByCity = guestList;
}
static final Comparator<Guest> BY_CITY = new Comparator<Guest>(){
public int compare(Guest g1, Guest g2){
ContactInfo c1 = g1.getContactInfo();
ContactInfo c2 = g2.getContactInfo();
return c2.getCity().compareTo(c1.getCity());
}
};
public static void main (String[] args)
{
loadGuestList();
System.out.println("ORIGINAL LIST\n=============\n
\n\n");
CollectionUtil.print(guestList);
System.out.println("LIST SORTED BY LAST NAME:
\n========================\n\n\n");
loadGuestListByName();
CollectionUtil.print(guestListByName);
noDups = CollectionUtil.removeDups
(guestListByName);
if (CollectionUtil.hasDups(noDups)) {
System.out.println("duplicates\n\n\n");
} else {
System.out.println("The task list is a
set.\n\n\n");
}
System.out.println("SET AUTOMATICALLY SORTED BY
CITY:\n===============================\n\n\n");
loadGuestByCity();
Collections.sort(guestsByCity, BY_CITY);
CollectionUtil.print(guestsByCity);
System.out.println("THE MAP:\n=======\n\n\n");
loadGuestMap();
printGuestMap();
}
}
thufir@arrakis:~/bcit-comp2611-lab3$
thufir@arrakis:~/bcit-comp2611-lab3$
thanks,
Thufir