Mega Code Archive

 
Categories / Java / Apache Common
 

Comparator Example For User Defined Class

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)