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

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