9 package javolution.util.internal.comparator;
11 import java.io.Serializable;
28 if (csq instanceof String)
29 return csq.hashCode();
31 for (
int i = 0, n = csq.length(); i < n;) {
32 h = 31 * h + csq.charAt(i++);
38 public boolean areEqual(CharSequence csq1, CharSequence csq2) {
41 if ((csq1 ==
null) || (csq2 ==
null))
43 if (csq1 instanceof String) {
44 if (csq2 instanceof String)
45 return csq1.equals(csq2);
46 return ((String) csq1).contentEquals(csq2);
47 }
else if (csq2 instanceof String) {
return ((String) csq2)
48 .contentEquals(csq1); }
51 int n = csq1.length();
52 if (csq2.length() != n)
54 for (
int i = 0; i < n;) {
55 if (csq1.charAt(i) != csq2.charAt(i++))
62 public int compare(CharSequence left, CharSequence right) {
67 if ((left instanceof String) && (right instanceof String))
68 return ((String) left).compareTo((String) right);
70 int n =
MathLib.
min(left.length(), right.length());
72 char c1 = left.charAt(i);
73 char c2 = right.charAt(i++);
77 return left.length() - right.length();