In order to do sorting in Java, we must be able to do comparisons with either a
Comparator
utility class or with elements that
implement the
Comparable
interface. By writing
Comparator
s (or implementing Comparable
),
we gain full control of the sort order of our elements.
In our Issue
class, we have decided to sort using the ID field
as the only criteria.
import java.util.Comparator; // a simple issues library import ca.odell.issuezilla.*; /** * Compare issues by priority. * * @author <a href="mailto:jesse@odel.on.ca">Jesse Wilson</a> */ public class IssueComparator implements Comparator { public int compare(Object a, Object b) { Issue issueA = (Issue)a; Issue issueB = (Issue)b; // rating is between 1 and 5, lower is more important int issueAValue = issueA.getPriority().getValue(); int issueBValue = issueB.getPriority().getValue(); return issueAValue - issueBValue; } }
Now that the SortedList
can compare elements, we can simply
create a SortedList
using the source list and Comparator
as the constructor argument. The SortedList
will
provide a sorted view of the original list even as the original list is
modified.
SortedList sortedIssues = new SortedList(issuesEventList, new IssueComparator());