![JAR search and dependency download from the Maven repository](/logo.png)
comparators.CharComparator Maven / Gradle / Ivy
package net.mintern.primitive.comparators;
/**
* A comparison function that imposes total ordering on {@code char} values.
*
* This is a {@code @FunctionalInterface} even though it isn't declared as one,
* so that it can be used in Java 6+.
*/
public interface CharComparator {
/**
* Compares {@code c1} and {@code c2}. Returns a negative value to indicate
* that {@code c1 < c2}, 0 to indicate that {@code c1 == c2}, and a positive
* value to indicate that {@code c1 > c2}.
*
* Implementations of this method must maintain the following invariants:
*
* - {@code s(compare(x, y)) == -s(compare(y, x))}
*
- {@code s(compare(x, y)) == s(compare(y, z))} →
* {@code s(compare(x, y)) == s(compare(x, z))} (transitivity)
*
- {@code compare(x, y) == 0} →
* {@code s(compare(x, z)) == s(compare(y, z))} ∀ {@code z}
*
*
* where {@code s(x)} is defined as follows:
*
* - {@code x < 0}: -1
*
- {@code x == 0}: 0
*
- {@code x > 0}: 1
*
*
* @param c1 the first char to compare
* @param c2 the second char to compare
* @return a negative value, 0, or a positive value to indicate that
* {@code c1} is less than, equal to, or greater than {@code c2},
* respectively
*/
int compare(char c1, char c2);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy