Erstellen einen Bereich in Java

Rupam Yadav 12 Oktober 2023
  1. Erstellen und prüfen Sie, ob eine Zahl in Java im Bereich liegt
  2. Erstellen einen Bereich mit Guava Range in Java
  3. Erstellen einen Bereich mit Apache Range in Java
  4. Erstellen einen Bereich mit ValueRange in Java
Erstellen einen Bereich in Java

Verschiedene Bibliotheken in Java können einen Bereich erstellen und prüfen, ob eine bestimmte Zahl zwischen dem erstellten Bereich vorhanden ist. Wir können auch die traditionellen Methoden in Java verwenden, um zu prüfen, ob eine bestimmte Zahl zwischen einem Mindest- und Höchstwert des Bereichs liegt. Lassen Sie uns Bibliotheken von Drittanbietern sowie herkömmliche Methoden verwenden, um diese Aufgabe zu erfüllen.

Erstellen und prüfen Sie, ob eine Zahl in Java im Bereich liegt

Dies ist die traditionelle Methode, um zu prüfen, ob die Zahl im Bereich liegt. Wir gehen als Argument durch. Hier haben wir eine Klasse, InRange, erstellt, die einen Standardkonstruktor hat, um übergebene Argumente an die Mitgliedsvariablen zu initialisieren. Es erstellt einen Bereich und prüft, ob die Zahl innerhalb des Bereichs liegt.

Wir erstellen eine Instanz der Klasse InRange mit dem Schlüsselwort new und übergeben den unteren und oberen Wert des Bereichs im Default-Konstruktor. Jetzt prüfen wir, ob Nummer 50 zwischen 10 und 99 fällt.

Wir rufen die Methode containsInRange() auf, die eine boolesche Überprüfung zurückgibt, ob die Zahl größer oder gleich dem unteren Bereich und kleiner oder gleich dem oberen Bereich ist, indem die Anweisung number >= lowerRange && number <= higherRange verwendet wird. Somit fällt 50 in den angegebenen Bereich, sodass als Ausgabe true zurückgegeben wird.

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

Ausgabe:

Is number 50 in our range : true

Erstellen einen Bereich mit Guava Range in Java

Dies ist eine Bibliothek eines Drittanbieters. Guava Range repräsentiert ein Intervall mit den Endpunkten a und b, die die Grenze bilden. Wir prüfen, ob eine Zahl zwischen a und b liegt.

Die für diese Bibliothek erforderliche Maven-Abhängigkeit ist unten angegeben.

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

Wir erstellen eine range-Instanz dieses Typs mit Standard-Factory-Methoden. Der erstellte Bereich kann basierend auf exklusiven oder inklusiven Endpunkten offen oder geschlossen sein.

Die Methode open(a,b) erstellt und gibt einen Bereich zurück, der a < Bereich < b darstellt. Das heisst a und b sind ausgeschlossen. Während für die Methode closed(a, b) der Bereich a<= Bereich <=b ist, sind also a und b eingeschlossen.

Die Methode contains() gibt true zurück, wenn das übergebene Argument innerhalb des angegebenen Bereichs liegt. Wenn wir beispielsweise mit der Methode contains() prüfen, ob die Instanz range die Zahl 8 enthält, gibt sie false zurück, da es sich um einen exklusiven Bereich handelt.

Aber gleichzeitig gibt der Aufruf der Methode contains(8) für die Instanz range1 true für dasselbe Argument zurück, da es sich um einen inklusiven Bereich handelt. Wir können dies in der Ausgabe sehen.

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

Ausgabe:

true
false
true

Erstellen einen Bereich mit Apache Range in Java

Apache Range ist eine weitere Bibliothek eines Drittanbieters, um zu prüfen, ob eine Zahl innerhalb des Bereichs liegt. Die Maven-Abhängigkeit für diese Bibliothek ist unten angegeben.

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

Die Apache-Klasse Range repräsentiert einen Bereich von Werten von einem minimalen bis zu einem maximalen Wert (einschließlich). Wir haben eine testRange-Instanz mit der Factory-Methode between() erstellt, die einen Bereich von 10 bis 34 darstellt, d. h. der Bereich umfasst auch diese beiden Werte.

Die Methode contains() prüft, ob ein angegebenes Element innerhalb des Bereichs vorhanden ist. Es gibt true zurück, wenn der Bereich das Element enthält.

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

Ausgabe:

false
true

Erstellen einen Bereich mit ValueRange in Java

Wir können auch Java 8 ValueRange verwenden, das einen Bereich erstellt, der sowohl den Mindest- als auch den Höchstwert umfasst. Die Methode isValidIntValue prüft, ob der übergebene Parameter im gültigen Bereich liegt. Es validiert auch, ob alle Werte im Bereich in ein int passen.

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

Ausgabe:

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