Comparable vs Comparator

Comparable interface is used to control the natural ordering of objects.

+ compareTo(Object) : int

Comparator interface is used to sort objects in an order other than their natural ordering.

+ compare(Object, Object) : int

+ equals(Object) : boolean

Example

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class Person implements Comparable
{
    String name;
    public Person(String name)
    {
        this.name = name;
    }
    public int compareTo(Object obj)
    {
        Person person = (Person) obj;
        return this.name.compareTo(person.name);
    }
    @Override
    public String toString()
    {
            return name;
    }
}
public class Service
{
    public static void main(String[] args)
    {
        ArrayList<Person> lt = new ArrayList<Person>();
        lt.add(new Person("Shyam"));
        lt.add(new Person("Mohan"));
        lt.add(new Person("Ram"));
        System.out.println("Unsorted  ->  " + lt);
        Collections.sort(lt);
        System.out.println("Natural ordering using Comparable  ->  " + lt);
        Collections.sort(lt,new Comparator<Person>() {
            @Override
            public int compare(Person p1, Person p2) {
                        return p1.name.compareTo(p2.name)*-1;
            }
        });
        System.out.println("Ordering using Comparator  ->  " + lt);
    }
}

Comments

Popular posts from this blog

Index MySQL datadase table in Solr

Hibernate Sharding Example

Shallow Copy