El rango de guayaba representa un intervalo , por ejemplo, a < rango < b. Aquí el rango incluye cualquier valor entre a y b, llamados puntos finales que forman el límite. Cualquier valor entre el límite es un tramo contiguo de valores de tipo Comparable.
Declaración: la declaración para la clase com.google.common.collect.Range< C > es:
@GwtCompatible public final class Range<C extends Comparable> extends Object implements Predicate<C>, Serializable
Cada extremo del rango puede ser acotado o no acotado. Si está acotado, hay un valor de punto final asociado. Si no, será tratado como infinito. Un rango se puede definir más como abierto o cerrado en función de si el rango es exclusivo o inclusivo de los puntos finales.
- open(a, b) : Representa a < rango < b, y en forma de notación, (a, b).
- cerrado(a, b) : Representa a <= rango <= b, y en forma de notación, [a, b].
- openClosed(a, b) : Representa a < rango <= b, y en forma de notación, (a, b).
- cerradoAbierto(a, b) : Representa a <= rango < b, y en forma de notación, [a, b).
- greatThan(a) : Representa rango > a, y en forma de notación, (a..+inf).
- atLeast(a, b) : Representa rango >= a, y en forma de notación, [a..+inf).
- lessThan(a, b) : Representa rango < b, y en forma de notación, (-inf..b).
- atMost(a, b) : Representa rango <= b, y en forma de notación, (-inf..b).
- all() : Representa -inf < rango < +inf, y en forma de notación, (-inf..+inf).
A continuación se presentan algunos métodos proporcionados por Range Class of Guava:
Nota: Cuando existen ambos puntos finales, el punto final superior no puede ser menor que el inferior. Los puntos finales pueden ser iguales solo si al menos uno de los límites está cerrado:
- [a..a] : un rango singleton.
- [a..a) o (a..a] : rangos vacíos, también válidos.
- (a..a): inválido, se lanzará una excepción.
Algunos otros métodos proporcionados por Range Class of Guava son:
Excepciones:
- open : IllegalArgumentException si lower es mayor o igual que upper.
- cerrado: IllegalArgumentException si inferior es mayor que superior.
- closedOpen: IllegalArgumentException si inferior es mayor que superior.
- openClosed : IllegalArgumentException si menor es mayor que mayor.
- range : IllegalArgumentException si inferior es mayor que superior.
- encloseAll: ClassCastException si los parámetros no son comparables entre sí, NoSuchElementException si los valores están vacíos, NullPointerException si alguno de los valores es nulo.
- lowerEndpoint : IllegalStateException si este rango no está limitado por debajo (es decir, hasLowerBound() devuelve falso).
- lowerBoundType : IllegalStateException si este rango no está limitado por debajo (es decir, hasLowerBound() devuelve falso).
- upperEndpoint : IllegalStateException si este rango no tiene límite superior (es decir, hasUpperBound() devuelve false).
- upperBoundType : IllegalStateException si este rango no tiene límite superior (es decir, hasUpperBound() devuelve falso).
- intersección: IllegalArgumentException si isConnected(connectedRange) es falso.
Below given are some examples to understand the implementation in a better way :
Example 1 :
// Java code to show implementation // of Range class of Guava import com.google.common.collect.Range; class GFG { // Driver code public static void main(String[] args) { // Taking range (1, 5) // Note that here 1 and 5 are not included Range<Integer> range = Range.open(1, 5); // Checking if range contains 1 or not System.out.println(range.contains(1)); // Checking if range contains 2 or not System.out.println(range.contains(2)); // Checking if range contains 3 or not System.out.println(range.contains(3)); // Checking if range contains 4 or not System.out.println(range.contains(4)); } }
Producción :
false true true true
Ejemplo 2:
// Java code to show implementation // of Range class of Guava import com.google.common.collect.Range; class GFG { // Driver code public static void main(String[] args) { // Taking range [1, 5] // Note that here 1 and 5 are included Range<Integer> range = Range.closed(1, 5); // Checking if range contains 1 or not System.out.println(range.contains(1)); // Checking if range contains 2 or not System.out.println(range.contains(2)); // Checking if range contains 3 or not System.out.println(range.contains(3)); // Checking if range contains 5 or not System.out.println(range.contains(5)); } }
Producción :
true true true true
Ejemplo 3:
// Java code to show implementation // of Range class of Guava import com.google.common.collect.Range; class GFG { // Driver code public static void main(String[] args) { // Taking range (2, +inf) // Note that numbers less than equal to 2 // are not included Range<Integer> range = Range.greaterThan(2); // Checking if range contains 1 or not System.out.println(range.contains(1)); // Checking if range contains 2 or not System.out.println(range.contains(2)); // Checking if range contains 130 or not System.out.println(range.contains(130)); // Checking if range contains 500 or not System.out.println(range.contains(500)); } }
Producción :
false false true true
Ejemplo 4:
// Java code to show implementation // of Range class of Guava import com.google.common.collect.Range; class GFG { // Driver code public static void main(String[] args) { // Taking range (-inf, 2] // Note that only numbers less than equal to 2 // are included Range<Integer> range = Range.atMost(2); // Checking if range contains 1 or not System.out.println(range.contains(1)); // Checking if range contains 2 or not System.out.println(range.contains(2)); // Checking if range contains -1 or not System.out.println(range.contains(-1)); // Checking if range contains 5 or not System.out.println(range.contains(5)); } }
Producción :
true true true false
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA