Comparable interface: The "Comparable" allows itself to compare with other same types of object. The function compareTo() is specified in the interface.
Several of the standard classes in the Java library like String, Date, Integer, File etc implement the Comparable interface to provide the class a "Natural Ordering".
For example String class describes the following methods:
public int compareTo(o)
public int compareToIgnoreCase(str)
Comparator interface: The Comparator is needed to compare two distinct objects. The following function is specified in the Comparator interface.
public int compare(Object l1, Object l2)
There are the benefits of the Java Collections Framework.
Java Collections framework gives performance, flexibility, and robustness.
1. Polymorphic algorithms - sorting, binary search, reversing, shuffling etc.
2. Set algebra - such as finding subsets, unions, and intersections between objects.
3. Performance - collections have much better performance compared to the Hashtable classes and older Vector with the elimination of synchronization overheads.
4. Thread-safety - when synchronization is needed, wrapper implementations are gives for temporarily synchronizing existing collection objects.
5. Immutability - when immutability is needed wrapper implementations are given for building a collection immutable.
6. Extensibility - abstract classes and interfaces give an excellent starting point for adding functionality and features to prepare specialized object collections.