Mega Code Archive

 
Categories / Java / Collections Data Structure
 

List and Comparators

import java.util.*; public class CompTest {   public static void main(String args[]) {     ArrayList u2 = new ArrayList();     u2.add("Beautiful Day");     u2.add("Stuck In A Moment You Can't Get Out Of");     u2.add("Elevation");     u2.add("Walk On");     u2.add("Kite");     u2.add("In A Little While");     u2.add("Wild Honey");     u2.add("Peace On Earth");     u2.add("When I Look At The World");     u2.add("New York");     u2.add("Grace");     Comparator comp = Comparators.stringComparator();     Collections.sort(u2, comp);     System.out.println(u2);     Arrays.sort(args, comp);     System.out.print("[");     for (int i=0, n=args.length; i<n; i++) {       if (i != 0) System.out.print(", ");       System.out.print(args[i]);     }     System.out.println("]");   } } class Comparators {   public static Comparator stringComparator() {     return new Comparator() {       public int compare(Object o1, Object o2) {         String s1 = (String)o1;         String s2 = (String)o2;         int len1 = s1.length();         int len2 = s2.length();         int n = Math.min(len1, len2);         char v1[] = s1.toCharArray();         char v2[] = s2.toCharArray();         int pos = 0;         while (n-- != 0) {           char c1 = v1[pos];           char c2 = v2[pos];           if (c1 != c2) {             return c1 - c2;           }           pos++;         }         return len1 - len2;       }     };   }   public static Comparator integerComparator() {     return new Comparator() {       public int compare(Object o1, Object o2) {         int val1 = ((Integer)o1).intValue();         int val2 = ((Integer)o2).intValue();         return (val1<val2 ? -1 : (val1==val2 ? 0 : 1));       }     };   }   public static Comparator dateComparator() {     return new Comparator() {       public int compare(Object o1, Object o2) {         long val1 = ((Date)o1).getTime();         long val2 = ((Date)o2).getTime();         return (val1<val2 ? -1 : (val1==val2 ? 0 : 1));       }     };   } }