| |||||||||||
| |||||||||||
Java sorting - comparable v comparator
In Java, you can sort objects that implement the Collection interface, using either the comparable interface or a comparator class. What's the difference?
A Comparable interfaced class must contain a method called compareTo to compare two objects (one being the object on which it is called and the other being passed as a paramater) which returns an integer, negative for a < b, positive for a > b and 0 otherwise. It must also contain an equals method, returning a boolean, on the same parameters. A Comparator is a class in its own right, which implements the Comparator interface; that means it must contain a method called compare (two objects as parameters) which returns a negative, zero or positive integer depensing on whether the first object is less than, equal to, or greater than the second. If you want to sort a collection using its comparable interface, you simply call the static Collections.sort method on it ... so if we had an ArrayList called Actable which implemented Comparable, we could write: Collections.sort(Actable);To sort a collection using a Comparator class, you need to pass an extra parameter into the Collections.sortmethod - that parameter being an instance of a Comparator object. Thus: Collections.sort(Actable, new Bynum());So in effect, using the comparable interface gives you a default sort order of your own making, whereas the comparator is more flexible as it allows you define a whole series of different types of sorting that can be applied to a whole lot of different types of objects. (written 2007-02-02 23:08:07) Associated topics are indexed under J714 - Java - Fundamental classes
Some other Articles
Final, Finally and Finalize - three special words in JavaGraham Ellis - an Introduction Light and shadows at Beach Bradford-on-Avon - 150 years of passenger trains Java sorting - comparable v comparator Take vehicles off the road - put all the passengers into one What a relief from the tax office. Three sets of twins PHP Regular expression to extrtact link and text Selling by phone and Skype - our policy 1635 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 at 50 posts per pageThis is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price. Link to Ezine home page (for reading). Link to Blogging home page (to add comments). |
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho | |||||||||||