All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiongyingqi.util.comparator.StringComparator Maven / Gradle / Ivy

The newest version!
package com.xiongyingqi.util.comparator;

import java.util.Comparator;


public class StringComparator implements Comparator {
    
    @Override
    public int compare(String o1, String o2) {
        if (o1 == null || o2 == null) {
            throw new NullPointerException();
        }

        if (o1.getClass() != o2.getClass()) {
            throw new ClassCastException();
        }

        if (o1.length() == o2.length()) {
            if (o1.hashCode() < o2.hashCode()) {
                return -1;
            } else if (o1.hashCode() > o2.hashCode()) {
                return 1;
            }
            if (o1.hashCode() == o2.hashCode()) {
                return 0;
            }
        }
        char[] chars1 = o1.toCharArray();
        char[] chars2 = o2.toCharArray();
        int c = 0;

        int minLength = (chars1.length < chars2.length) ? chars1.length : chars2.length;
        for (int i = 0; i < minLength; i++) {
            if (chars1[i] != chars2[i]) {
                if (chars1[i] < chars2[i]) {
                    c = -1;
                } else {
                    c = 1;
                }
                break;
            }
        }

        if (c == 0) {
            c = (chars1.length < chars2.length) ? -1 : 1;
        }
        return c;
    }

    
    @Override
    public boolean equals(Object obj) {
        return false;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy