Java tutorial
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()); } }