Java Collection Tutorial - Java Comparable.compareTo(T o)








Syntax

Comparable.compareTo(T o) has the following syntax.

int compareTo(T o)

Example

In the following code shows how to use Comparable.compareTo(T o) method.

/* www .  j av  a  2  s  .  c o  m*/
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    Employee[] staff = new Employee[3];

    staff[0] = new Employee("HTML", 35000);
    staff[1] = new Employee("Java", 75000);
    staff[2] = new Employee("CSS", 38000);

    Arrays.sort(staff);

    for (Employee e : staff){
      System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
    }
      
  }
}

class Employee implements Comparable<Employee> {
  public Employee(String n, double s) {
    name = n;
    salary = s;
  }

  public String getName() {
    return name;
  }

  public double getSalary() {
    return salary;
  }

  public void raiseSalary(double byPercent) {
    double raise = salary * byPercent / 100;
    salary += raise;
  }

  /**
   * Compares employees by salary
   * 
   * @param other
   *          another Employee object
   * @return a negative value if this employee has a lower salary than
   *         otherObject, 0 if the salaries are the same, a positive value
   *         otherwise
   */
  public int compareTo(Employee other) {
    if (salary < other.salary)
      return -1;
    if (salary > other.salary)
      return 1;
    return 0;
  }

  private String name;
  private double salary;
}

The code above generates the following result.