aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes comparable and comparator interface Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "comparable and comparator interface" Watch "comparable and comparator interface" New topic
Author

comparable and comparator interface

vijay umar
Ranch Hand

Joined: Mar 24, 2009
Posts: 100
these lines are from k&s book... i could not understand the difference between using comparator and comparable interface....what is there use and how they are used....

The other handy thing about
the Comparator interface is that you can use it to sort instances of any class—even
classes you can't modify—
unlike the Comparable interface, which forces you to
change the class whose instances you want to sort.


please explain with an example!!!
kaushik vira
Ranch Hand

Joined: Feb 01, 2007
Posts: 102
Hello Vijay..

you need to understand this line in broader way.. let me explain some..



above code will help you to understand your question..

See in Client code i have did sorting 3 time..

one natural using comparable
2nd using comparator
3rd using comparator - reverse order

but if you consider way one.. and i want to change my sorting criteria i must have to change the test class
but if i do same thing using comparator - then i just need to introduce new comparator.. but it`s client side code no need to change original class...




kaushik Vira
-------------------------------------
SCJP, Preparing SCWCD..
vijay umar
Ranch Hand

Joined: Mar 24, 2009
Posts: 100
if in the test class the method use is

public Test(String i) method


and we added
st.add(new Test("hello"));
st.add(new Test("ball"));
st.add(new Test("people"));
st.add(new Test("joy"));


now if we these things instead then how the output manipulated!!! can you please explain how we will get the output instead of only telling what we will get!!!please
vijay umar
Ranch Hand

Joined: Mar 24, 2009
Posts: 100
can any one reply to this question
kaushik vira
Ranch Hand

Joined: Feb 01, 2007
Posts: 102
Your question is very basic.. it will be very hard to expain all the things..

better you go through K&B Chapter 6 - Topic sorting Collections , Comparable Interface and Comparator interface - page (549 -555). it will give you clear idea how flow goes..

vijay umar
Ranch Hand

Joined: Mar 24, 2009
Posts: 100
i have read the k&s bok... but there is no practical implication with the explanation.... So any oone can please explain in brief how the above wil be manipulated if given as an input...
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 19073
    
  40

vijay umar wrote:So any oone can please explain in brief how the above wil be manipulated if given as an input...



The comparable interfaces does *not* manipulate. It doesn't do any searching. It doesn't do any sorting. etc. The purpose of the comparable interface is to compare two objects (or to compare one object to another). Period.

If you look at all sorting algorithms -- bubble sort, quick sort, heap sort, etc. etc. -- you'll notice that at a very basic level, it depends on the capability to compare two items. So... The compare() method doesn't do any sorting. The sorting is done by the collections.sort() method that you are using. However, when the algorithm (implemented by the method) needs to compare and decide whether it should move an element in the list, it uses the compare method.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
vijay umar
Ranch Hand

Joined: Mar 24, 2009
Posts: 100
k..thanks...will contact you for further query!!!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: comparable and comparator interface