Crear un rango en Java

Rupam Yadav 12 octubre 2023
  1. Crear y verificar si un número está en el rango en Java
  2. Crear un rango usando el rango de guayaba en Java
  3. Crear un rango usando Apache Range en Java
  4. Crear un rango usando ValueRange en Java
Crear un rango en Java

Varias bibliotecas en Java pueden crear un rango y verificar si existe un número determinado entre el rango creado. También podemos usar las formas tradicionales en Java para verificar si un número dado está contenido entre un valor mínimo y máximo del rango. Usemos bibliotecas de terceros, así como métodos tradicionales para lograr esta tarea.

Crear y verificar si un número está en el rango en Java

Esta es la forma tradicional de verificar si el número se encuentra dentro del rango. Pasamos como argumento. Aquí, creamos una clase, InRange, que tiene un constructor predeterminado para inicializar los argumentos pasados ​​a las variables miembro. Crea un rango y verifica si el número está dentro del rango.

Creamos una instancia de la clase InRange usando la palabra clave new y pasamos el valor inferior y superior del rango en el constructor predeterminado. Ahora comprobamos si el número 50 se encuentra entre 10 y 99.

Llamamos al método containsInRange(), que devuelve una comprobación booleana si el número es mayor o igual que el rango inferior y menor o igual que el rango superior utilizando la instrucción number >= lowerRange && number <= upperRange. Por lo tanto, 50 cae en el rango dado, por lo que se devuelve true como salida.

import org.w3c.dom.ranges.Range;

class InRange {
  private int lowerRange;
  private int higherRange;

  public InRange(int low, int high) {
    lowerRange = low;
    higherRange = high;
  }

  public boolean containsInRange(int number) {
    return (number >= lowerRange && number <= higherRange);
  }
}
public class TestRange {
  public static void main(String[] args) {
    InRange inRange = new InRange(10, 99);
    int number = 50;
    System.out.println(
        "Is number " + number + " in our range : " + inRange.containsInRange(number));
  }
}

Producción :

Is number 50 in our range : true

Crear un rango usando el rango de guayaba en Java

Esta es una biblioteca de terceros. Guava Range representa un intervalo con extremos a y b, que forman el límite. Comprobaremos si un número se encuentra entre a y b.

La dependencia maven requerida para esta biblioteca se proporciona a continuación.

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>29.0-jre</version>
</dependency>

Creamos una instancia de range de este tipo utilizando métodos estándar de fábrica. El rango creado puede ser abierto o cerrado en función de puntos finales exclusivos o inclusivos.

El método open(a,b) crea y devuelve un rango que representa un < rango < b. Eso significa que a y b están excluidos. Mientras que para el método cerrado(a, b) el rango es a<= rango <=b, por lo que se incluyen a y b.

El método contains() devuelve verdadero si el argumento pasado se encuentra dentro del rango dado. Por ejemplo, si verificamos si la instancia range contiene el número 8 usando el método contains() devuelve falso ya que es un rango exclusivo.

Pero al mismo tiempo, llamar al método contains(8) en la instancia range1 devuelve verdadero para el mismo argumento, ya que es un rango inclusivo. Podemos ver esto en la salida.

import com.google.common.collect.Range;
public class TestRange {
  public static void main(String[] args) {
    Range<Integer> range = Range.open(1, 8);
    Range<Integer> range1 = Range.closed(1, 8);

    System.out.println(range.contains(3));
    System.out.println(range.contains(8));
    System.out.println(range1.contains(8));
  }
}

Producción :

true
false
true

Crear un rango usando Apache Range en Java

Apache Range es otra biblioteca de terceros para verificar si un número se encuentra dentro del rango. La dependencia maven para esta biblioteca se proporciona a continuación.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.0.1</version>
 </dependency>

La clase Range de Apache representa un rango de valores desde un valor mínimo hasta un valor máximo (inclusive). Creamos una instancia de testRange usando el método de fábrica between() que representa un rango de 10 a 34, es decir, el rango también incluye estos dos valores.

El método contains() comprueba si un elemento específico está presente dentro del rango. Devuelve verdadero si el rango contiene el elemento.

import org.apache.commons.lang3.Range;
public class TestRange {
  public static void main(String[] args) {
    Range<Integer> testRange = Range.between(10, 34);
    System.out.println(testRange.c(2));
    System.out.println(testRange.contains(32));
  }
}

Producción :

false
true

Crear un rango usando ValueRange en Java

También podemos usar Java 8 ValueRange, que crea un rango que incluye tanto el valor mínimo como el máximo. El método isValidIntValue comprueba si el parámetro pasado se encuentra dentro del rango válido. También valida si todos los valores del rango caben en un int.

import java.time.temporal.ValueRange;
public class TestRange {
  public static void main(String[] args) {
    ValueRange range = ValueRange.of(0, 2);
    System.out.println(range.isValidIntValue(8));
  }
}

Producción :

false
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn