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@xxxxxxx" },
{ "Sullivan", "Sam", "604-873-7011",
"Sam777@xxxxxxxxxxx" },
{ "Johansen", "Lars", "(604) 636-1000",
"Lars147@xxxxxxxxx" }},


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
.