Source Code : Comparator Example For User Defined Class
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
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;
}
}
Thank with us