Apache Common Java

import org.apache.commons.collections.comparators.ComparatorChain;
import java.util.Arrays;
import java.util.Comparator;
public class ComparatorExampleForUserDefinedClass {
  public static void main(String args[]) {
    prepareData();
    ComparatorChain chain = new ComparatorChain();
    chain.addComparator(new NameComparator());
    chain.addComparator(new NumberComparator());
    printArray(dataArray);
    Arrays.sort(dataArray, chain);
    printArray(dataArray);
  }
  private static void prepareData() {
    dataArray[0] = "S4";
    dataArray[1] = "Sa";
    dataArray[2] = "K";
    dataArray[3] = "K4";
    dataArray[4] = "W";
    dataArray[5] = "Sha";
    dataArray[6] = "War";
  }
  private static void printArray(String[] array) {
    System.err.println("---- Elements in Array ---- ");
    for(int i = 0; i < array.length; i++) {
      System.err.print(array[i] + ", ");
    }
    System.err.println("");
  }
  private static String[] dataArray = new String[7];
}
class NameComparator implements Comparator {
  public int compare(Object o1, Object o2) {
    if(o1 instanceof String && o2 instanceof String) {
      String s1 = (String)o1;
      String s2 = (String)o2;
      s1 = s1.substring(0, s1.indexOf("-"));
      s2 = s2.substring(0, s2.indexOf("-"));
      return s1.compareTo(s2);
    }
    return 0;
  }
}
class NumberComparator implements Comparator {
  public int compare(Object o1, Object o2) {
    if(o1 instanceof String && o2 instanceof String) {
      String s1 = (String)o1;
      String s2 = (String)o2;
      Integer i1 = new Integer(s1.substring(s1.indexOf("-"), s1.length()));
      Integer i2 = new Integer(s2.substring(s2.indexOf("-"), s2.length()));
      return i1.compareTo(i2);
    }
    return 0;
  }
}
           
       
ApacheCollectionComparatorExampleForUserDefinedClass.zip( 516 k)