wood burning stoves 2.0*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Difference between Comparable and Comparator interfaces Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Difference between Comparable and Comparator interfaces" Watch "Difference between Comparable and Comparator interfaces" New topic
Author

Difference between Comparable and Comparator interfaces

ashni Prakash
Ranch Hand

Joined: Dec 05, 2006
Posts: 50
Can someone tell me the difference between Comparable and Comparator interface and which to use when with examples.

Thanks
Sergey Petunin
Ranch Hand

Joined: Dec 16, 2007
Posts: 44
Comparable interface is defined in the java.lang package and is implemented by a class if the objects of this class can be compared to each other. The comparation can be done using the compareTo() method of this interface. This method should return 0 if the objects are equal, 1 if the argument is smaller and -1 if the argument is bigger than the object on which we're calling this method.

Here's an example of a comparable class. We define the rule for comparation: the RichMan object is bigger if it's int field "money" is greater than one of another RichMan .



Comparator interface is defined in the java.util package and is used for sorting collections, e.g., with Collections.sort method. It defines a method compare(T o1, T o2) which is used for defining a custom sort order. For example, you want to sort a list of RichMan objects not by their money amount, but using their name order. Here's how this can be done:


So to sort a list of RichMan objects by their names, you can say:

[ December 18, 2007: Message edited by: Serge Petunin ]
Vishwanath Krishnamurthi
Ranch Hand

Joined: Jun 04, 2007
Posts: 331
Hi,
And also, the custom sort order can be specified for a sorted collection like TreeMap with a comparator as a constructor argument;

TreeMap()
Constructs a new, empty map, sorted according to the keys' natural order.

TreeMap(Comparator c)
Constructs a new, empty map, sorted according to the given comparator


Blog
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Difference between Comparable and Comparator interfaces
 
Similar Threads
What is the difference between Comparator and Comparable
Difference between comparable and comparator
Difference in between comparable and comparator interface
difference between Comparator and Comparable interface
Comparable and Comparator