CompTest.java Source code

Java tutorial

Introduction

Here is the source code for CompTest.java

Source

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));
            }
        };
    }
}