package genericsexample; import java.util.Comparator; // class that knows how to compare HCCClasses to each other // based on number of credits public class ClassCreditComparator implements Comparator { // method for comparing classes, // class is bigger if it has more credits // if same number of credits, fall back on compareTo from HCCClass public int compare(HCCClass class1, HCCClass class2) { // take care of null cases if (class1 == null && class2 == null) { return 0; } if (class1 == null) { return -1; } if (class2 == null) { return 1; } // determine difference in number of credits int diffCredits = class1.getCredits() - class2.getCredits(); // if there is a difference, use that as comparison value if (diffCredits != 0) { return diffCredits; } // otherwise, credits are the same, use compareTo from HCCClass return class1.compareTo(class2); } }