Geeks Talk

Prepare for your Next Interview




java

This is a discussion on java within the Java forums, part of the Software Development category; what is the comparable interface in java?...

  #1 (permalink)  
Old 06-25-2008
Junior Member
 
Join Date: Jun 2008
Location: pune
Posts: 1
Thanks: 0
Thanked 2 Times in 1 Post
send4sbk is on a distinguished road
java

what is the comparable interface in java?
Reply With Quote
The Following 2 Users Say Thank You to send4sbk For This Useful Post:
Sponsored Links
  #2 (permalink)  
Old 07-07-2008
Junior Member
 
Join Date: Jul 2008
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Sukumar Maddineni is on a distinguished road
Comparable Interface Use :

public interface Comparable

This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class's natural ordering, and the class's compareTo method is referred to as its natural comparison method.

Lists (and arrays) of objects that implement this interface can be sorted automatically by Collections.sort (and Arrays.sort). Objects that implement this interface can be used as keys in a sorted map or elements in a sorted set, without the need to specify a comparator.

The natural ordering for a class C is said to be consistent with equals if and only if (e1.compareTo((Object)e2) == 0) has the same boolean value as e1.equals((Object)e2) for every e1 and e2 of class C. Note that null is not an instance of any class, and e.compareTo(null) should throw a NullPointerException even though e.equals(null) returns false.

It is strongly recommended (though not required) that natural orderings be consistent with equals. This is so because sorted sets (and sorted maps) without explicit comparators behave "strangely" when they are used with elements (or keys) whose natural ordering is inconsistent with equals. In particular, such a sorted set (or sorted map) violates the general contract for set (or map), which is defined in terms of the equals method.

For example, if one adds two keys a and b such that (!a.equals((Object)b) && a.compareTo((Object)b) == 0) to a sorted set that does not use an explicit comparator, the second add operation returns false (and the size of the sorted set does not increase) because a and b are equivalent from the sorted set's perspective.

Virtually all Java core classes that implement comparable have natural orderings that are consistent with equals. One exception is java.math.BigDecimal, whose natural ordering equates BigDecimal objects with equal values and different precisions (such as 4.0 and 4.00).

For the mathematically inclined, the relation that defines the natural ordering on a given class C is:

{(x, y) such that x.compareTo((Object)y) <= 0}.


The quotient for this total order is:

{(x, y) such that x.compareTo((Object)y) == 0}.


It follows immediately from the contract for compareTo that the quotient is an equivalence relation on C, and that the natural ordering is a total order on C. When we say that a class's natural ordering is consistent with equals, we mean that the quotient for the natural ordering is the equivalence relation defined by the class's equals(Object) method:

{(x, y) such that x.equals((Object)y)}.


This interface is a member of the Java Collections Framework.
Reply With Quote
Reply

  Geeks Talk > Software Development > Java


Thread Tools
Display Modes


Similar Threads

Thread Thread Starter Forum Replies Last Post
From Java to .NET viswanath Career Advice 2 05-03-2008 07:20 AM
How to set path for java in Linux for java programs jitudash Java 2 04-24-2008 06:15 AM
How to test java project in QTP without java addin Geek_Guest QTP 7 09-18-2007 06:53 AM
java subhani_syed Java 1 06-12-2007 01:19 AM
is java is a.. samineni6 Java 5 06-07-2007 01:45 AM


All times are GMT -4. The time now is 10:24 PM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Copyright © 2008 GeekInterview.com. All Rights Reserved