This program demonstrates the use of the Comparable interface : Comparable « Collections Data Structure « Java

This program demonstrates the use of the Comparable interface

   This program is a part of the companion code for Core Java 8th ed.

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <>.

import java.util.*;

 * This program demonstrates the use of the Comparable interface.
 * @version 1.30 2004-02-27
 * @author Cay Horstmann
public class EmployeeSortTest
   public static void main(String[] args)
      Employee[] staff = new Employee[3];

      staff[0] = new Employee("Harry Hacker", 35000);
      staff[1] = new Employee("Carl Cracker", 75000);
      staff[2] = new Employee("Tony Tester", 38000);


      // print out information about all Employee objects
      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;


Related examples in the same category

1.This program sorts a set of item by comparing their descriptions