Create a Comparable class to compare and sort objects in Java

Description

The following code shows how to create a Comparable class to compare and sort objects.

Example


/*from w  ww  .j  a  va2 s  . c om*/
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    Car car1 = new Car("A",  5000);
    Car car2 = new Car("B", 5000);
    Car car3 = new Car("C", 4000);

    System.out.println("Car 1 equals Car 2: " + car1.compareTo(car2));
    System.out.println("Car 1 equals Car 3: " + car1.compareTo(car3));
    System.out.println("Car 2 equals Car 3: " + car2.compareTo(car3));

    Car[] carArray = new Car[] { car1, car2, car3 };
    Arrays.sort(carArray);

    for (Car car : carArray)
      System.out.println(car.toString());
  }
}

class Car implements Comparable {
  private String make;

  private int mileage;

  public Car(String make, int mileage) {
    this.make = make;
    this.mileage = mileage;
  }

  public int compareTo(Object obj) {
    if (obj instanceof Car) {
      Car car = (Car) obj;
      if (this.mileage > car.getMileage())
        return 1;
      else if (this.mileage < car.getMileage())
        return -1;
    }
    return 0;
  }

  public int getMileage() {
    return mileage;
  }

  public String toString() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("Make: " + make + ",Mileage: " + mileage);
    return buffer.toString();
  }
}

The code above generates the following result.





















Home »
  Java Tutorial »
    Java Collection »




Java ArrayList
Java Collection
Java Comparable
Java Comparator
Java HashMap
Java HashSet
Java Iterator
Java LinkedHashMap
Java LinkedHashSet
Java LinkedList
Java List
Java ListIterator
Java Map
Queue
Java Set
Stack
Java TreeMap
TreeSet