java.lang.Comparable is used to define the natural sort order of a class. In contrast, java.lang.Comparator is used to define an auxiliary sort order for a class.
Normally you also redefine equals when you implement Comparable even though it is not part of the Comparable interface. There are no generics involved in overriding equals.
To implement Comparable you must write only one method: compareTo. It is typically added to an existing class to describe the natural order of that class. compareTo compares this object with another.
public int compareTo( Object o );
// base class class SalesTaxItem implements Comparable<SalesTaxItem> { ... }
and you try to extend it with:
you will get this error message. Comparable cannot be inherited with different arguments
The best way I know of to bypass the problem is to write both classes without the implements Comparable. Then write two Comparators instead.
Sorting ascending order means sorting with the small elements first then the big. This is usual ordering. Descending order means sorting with the big elements first then the small.
If you have a Comparator or Comparable of some kind, you can convert it into one that sorts into the reverse of the usual order, e. g. if the original sorts alphabetically, the new one will sort in reverse alphabetical order. Here is how you use it:
If you don’t have a suitable base Comparator, just write an ordinary Comparator from scratch and reverse the operands to each compare inside it, or return - result instead of result.
This page is posted |
http://mindprod.com/jgloss/comparable.html | |
Optional Replicator mirror
|
J:\mindprod\jgloss\comparable.html | |
Please read the feedback from other visitors,
or send your own feedback about the site. Contact Roedy. Please feel free to link to this page without explicit permission. | ||
Canadian
Mind
Products
IP:[65.110.21.43] Your face IP:[3.149.28.195] |
| |
Feedback |
You are visitor number | |