Saturday 15 March 2014

How to override compareTo() of Comparable interface

Its very simple just implements camparable interface in one class with private varible and there setter and getter and override compareTo() method. After that create another public class with main() and create previous class's object and set values. You can understand with following code :-


package example;

import java.util.*;

/**
 *
 * @author pradeep
 */
public class ComparableDemo {

    public static void main(String args[]) {
        User u = new User();
        u.setName("pradeep");
        User u1 = new User();
        u1.setName("Ajeet");
        User u2 = new User();
        u2.setName("sameer");
        List<User> list = new ArrayList<User>();
        list.add(u);
        list.add(u1);
        list.add(u2);
        Collections.sort(list);
        for (User user : list) {
            System.out.println(user.getName());
        }
    }
}

class User implements Comparable<User> {

    private String name;

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int compareTo(User n) {
        if (this.getName().compareTo(n.getName()) > 0) {
            return 1;
        }
        if (this.getName().compareTo(n.getName()) < 0) {
            return -1;
        }
        return 0;
    }
}

No comments:

Post a Comment