Clase de rango | guayaba | Java

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *