[Logo] JavaRanch » JavaRanch Saloon
  Search | FAQ | Recent Topics | Hot Topics
Register / Login


Reply Bookmark it! Watch this topic JavaRanch » Forums » Professional Certification » Programmer Certification (SCJP)
 
RSS feed
 
New topic
Author

comparable and comparator interface

vijay umar
Ranch Hand

Joined: Mar 24, 2009
Messages: 83

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
Messages: 101

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...



This message was edited 1 time. Last update was at by kaushik vira


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

Joined: Mar 24, 2009
Messages: 83

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
Messages: 83

can any one reply to this question
kaushik vira
Ranch Hand

Joined: Feb 01, 2007
Messages: 101

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..


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

Joined: Mar 24, 2009
Messages: 83

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
Bartender

Joined: Sep 28, 2004
Messages: 9919

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
Messages: 83

k..thanks...will contact you for further query!!!
 
jQuery in Action
 
 
Reply Bookmark it! Watch this topic JavaRanch » Forums » Professional Certification » Programmer Certification (SCJP)
 
RSS feed
 
New topic
The most intelligent Java IDE

.