Employee.java Source code

Java tutorial

Introduction

Here is the source code for Employee.java

Source

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.ListIterator;

class Employee implements Comparable {
    private String name;

    private double salary;

    Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    String getName() {
        return name;
    }

    double getSalary() {
        return salary;
    }

    public String toString() {
        return "Name = " + getName() + ", Salary = " + getSalary();
    }

    public int compareTo(Object o) {
        if (!(o instanceof Employee))
            throw new ClassCastException();

        Employee e = (Employee) o;

        return name.compareTo(e.getName());
    }

    static class SalaryComparator implements Comparator {
        public int compare(Object o1, Object o2) {
            if (!(o1 instanceof Employee) || !(o2 instanceof Employee))
                throw new ClassCastException();

            Employee e1 = (Employee) o1;
            Employee e2 = (Employee) o2;

            return (int) (e1.getSalary() - e2.getSalary());
        }
    }
}

class UtilDemo4 {
    public static void main(String[] args) {
        String[] names = { "A", "B", "C", "D" };

        double[] salaries = { 2.0, 5.0, 6.0, 4.0 };

        List l = new ArrayList();

        for (int i = 0; i < names.length; i++)
            l.add(new Employee(names[i], salaries[i]));

        Collections.sort(l);

        ListIterator liter = l.listIterator();

        while (liter.hasNext())
            System.out.println(liter.next());

        Collections.sort(l, new Employee.SalaryComparator());

        liter = l.listIterator();

        while (liter.hasNext())
            System.out.println(liter.next());
    }
}