Java Collection How to - Add Comparable object to a sorted collection








Question

We would like to know how to add Comparable object to a sorted collection.

Answer

import java.util.Set;
import java.util.TreeSet;
/*  w ww .  jav  a 2  s  .  co  m*/
class Product implements Comparable<Product> {
  String prodName;

  int prodID;

  Product(String str, int id) {
    prodName = str;
    prodID = id;
  }

  public int compareTo(Product p2) {
    return prodName.compareToIgnoreCase(p2.prodName);
  }

  public boolean equals(Object p2) {
    return prodName.compareToIgnoreCase(((Product) p2).prodName) == 0;
  }
}

public class Main {
  public static void main(String args[]) {
    Set<Product> prodList = new TreeSet<Product>();

    prodList.add(new Product("A", 13546));
    prodList.add(new Product("B", 04762));
    prodList.add(new Product("C", 12221));
    prodList.add(new Product("D", 44387));

    for (Product p : prodList)
      System.out.printf("%-14s ID: %d\n", p.prodName, p.prodID);
  }
}

The code above generates the following result.