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

comparators.ByteComparator Maven / Gradle / Ivy

package net.mintern.primitive.comparators;

/**
 * A comparison function that imposes total ordering on {@code byte} 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 ByteComparator { /** * Compares {@code b1} and {@code b2}. Returns a negative value to indicate * that {@code b1 < b2}, 0 to indicate that {@code b1 == b2}, and a positive * value to indicate that {@code b1 > b2}. *

* 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 b1 the first byte to compare * @param b2 the second byte to compare * @return a negative value, 0, or a positive value to indicate that * {@code b1} is less than, equal to, or greater than {@code b2}, * respectively */ int compare(byte b1, byte b2); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy