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