• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Difference between Comparable and Comparator interfaces

 
Ranch Hand
Posts: 50
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Can someone tell me the difference between Comparable and Comparator interface and which to use when with examples.

Thanks
 
Ranch Hand
Posts: 44
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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 ]
 
Ranch Hand
Posts: 331
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
reply
    Bookmark Topic Watch Topic
  • New Topic