Créer une plage en Java

Rupam Yadav 12 octobre 2023
  1. Créer et vérifier si un nombre est dans la plage en Java
  2. Créer une plage à l’aide de Guava Range en Java
  3. Créer une plage à l’aide d’Apache Range en Java
  4. Créer une plage à l’aide de ValueRange en Java
Créer une plage en Java

Diverses bibliothèques en Java peuvent créer une plage et vérifier si un nombre donné existe entre la plage créée. Nous pouvons également utiliser les méthodes traditionnelles de Java pour vérifier si un nombre donné est compris entre une valeur minimale et maximale de la plage. Utilisons des bibliothèques tierces ainsi que des méthodes traditionnelles pour accomplir cette tâche.

Créer et vérifier si un nombre est dans la plage en Java

C’est la manière traditionnelle de vérifier si le nombre se situe dans la plage. Nous passons comme argument. Ici, nous avons créé une classe, InRange, qui a un constructeur par défaut pour initialiser les arguments passés aux variables membres. Il crée une plage et vérifie si le nombre est dans la plage.

Nous créons une instance de la classe InRange à l’aide du mot-clé new et passons la valeur inférieure et supérieure de la plage dans le constructeur par défaut. Maintenant, nous vérifions si le nombre 50 se situe entre 10 et 99.

Nous appelons la méthode containsInRange(), qui renvoie un booléen vérifiant si le nombre est supérieur ou égal à la plage inférieure et inférieur ou égal à la plage supérieure à l’aide de l’instruction number >= lowerRange && number <= higherRange. Ainsi, 50 tombe dans la plage donnée, donc true est renvoyé en sortie.

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));
  }
}

Production :

Is number 50 in our range : true

Créer une plage à l’aide de Guava Range en Java

Il s’agit d’une bibliothèque tierce. Guava Range représente un intervalle dont les extrémités a et b forment la frontière. Nous vérifierons si un nombre se situe entre a et b.

La dépendance maven requise pour cette bibliothèque est donnée ci-dessous.

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

Nous créons une instance range de ce type en utilisant les méthodes standard d’usine. La plage créée peut être ouverte ou fermée en fonction de points de terminaison exclusifs ou inclusifs.

La méthode open(a,b) crée et retourne une plage qui représente a < plage < b. Cela signifie que a et b sont exclus. Alors que pour la méthode closed(a, b) la plage est a<= range <=b, donc a et b sont inclus.

La méthode contains() renvoie true si l’argument passé se situe dans la plage donnée. Par exemple, si nous vérifions si l’instance range contient le numéro 8 en utilisant la méthode contains(), elle renvoie false car il s’agit d’une plage exclusive.

Mais en même temps, l’appel de la méthode contains(8) sur l’instance range1 renvoie true pour le même argument car il s’agit d’une plage inclusive. Nous pouvons le voir dans la sortie.

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));
  }
}

Production :

true
false
true

Créer une plage à l’aide d’Apache Range en Java

Apache Range est une autre bibliothèque tierce pour vérifier si un nombre se situe dans la plage. La dépendance maven pour cette bibliothèque est donnée ci-dessous.

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

La classe Apache Range représente une plage de valeurs allant d’une valeur minimale à une valeur maximale (inclusive). Nous avons créé une instance testRange en utilisant la méthode d’usine between() qui représente une plage de 10 à 34, c’est-à-dire que la plage inclut également ces deux valeurs.

La méthode contains() vérifie si un élément spécifié est présent dans la plage. Elle renvoie true si la plage contient l’élément.

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));
  }
}

Production :

false
true

Créer une plage à l’aide de ValueRange en Java

Nous pouvons également utiliser Java 8 ValueRange, qui crée une plage comprenant à la fois la valeur minimale et la valeur maximale. La méthode isValidIntValue vérifie si le paramètre passé se situe dans la plage valide. Il valide également si toutes les valeurs de la plage tiennent dans 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));
  }
}

Production :

false
Auteur: Rupam Yadav
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