在 Java 中建立一個範圍

Rupam Yadav 2023年10月12日
  1. 在 Java 中建立並檢查一個數字是否在範圍內
  2. 在 Java 中使用 Guava Range 建立一個範圍
  3. 在 Java 中使用 Apache Range 建立範圍
  4. 在 Java 中使用 ValueRange 建立範圍
在 Java 中建立一個範圍

Java 中的各種庫可以建立一個範圍並檢查建立的範圍之間是否存在給定的數字。我們還可以使用 Java 中的傳統方法來檢查給定數字是否包含在範圍的最小值和最大值之間。讓我們使用第三方庫以及傳統方法來完成此任務。

在 Java 中建立並檢查一個數字是否在範圍內

這是檢查數字是否在範圍內的傳統方法。我們作為引數傳遞。在這裡,我們建立了一個類 InRange,它有一個預設建構函式來初始化傳遞給成員變數的引數。它建立一個範圍並檢查數字是否在該範圍內。

我們使用 new 關鍵字建立 InRange 類的例項,並在預設建構函式中傳遞範圍的較低和較高值。現在我們檢查數字 50 是否在 1099 之間。

我們呼叫 containsInRange() 方法,該方法返回一個布林值,使用 number >= lowerRange && number <= higherRange 語句檢查數字是否大於或等於下限且小於或等於上限。因此,50 落在給定範圍內,因此 true 作為輸出返回。

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

輸出:

Is number 50 in our range : true

在 Java 中使用 Guava Range 建立一個範圍

這是一個第三方庫。Guava Range 表示具有端點 ab 的區間,它們形成邊界。我們將檢查一個數字是否在 ab 之間。

下面給出了這個庫所需的 maven 依賴項。

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

我們使用標準工廠方法建立這種型別的 range 例項。建立的範圍可以基於獨佔或包含端點是開放的或封閉的。

open(a,b) 方法建立並返回一個表示 a < range < b 的範圍。這意味著 ab 被排除在外。而對於方法 closed(a, b),範圍是 a<= range <=b,因此包括 ab

如果傳遞的引數在給定範圍內,則 contains() 方法返回 true。例如,如果我們使用 contains() 方法檢查例項 range 是否包含數字 8,它會返回 false,因為它是一個獨佔範圍。

但同時在 range1 例項上呼叫方法 contains(8) 對相同的引數返回 true,因為它是一個包含範圍。我們可以在輸出中看到這一點。

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

輸出:

true
false
true

在 Java 中使用 Apache Range 建立範圍

Apache Range 是另一個第三方庫,用於檢查數字是否在範圍內。下面給出了這個庫的 maven 依賴項。

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

Apache Range 類表示從最小值到最大值(包括)的一系列值。我們使用工廠方法 between() 建立了一個 testRange 例項,它表示從 1034 的範圍,即範圍也包括這兩個值。

contains() 方法檢查指定元素是否存在於範圍內。如果範圍包含該元素,則返回 true。

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

輸出:

false
true

在 Java 中使用 ValueRange 建立範圍

我們還可以使用 Java 8 ValueRange,它建立一個包含最小值和最大值的範圍。isValidIntValue 方法檢查傳遞的引數是否在有效範圍內。它還驗證範圍內的所有值是否都適合 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));
  }
}

輸出:

false
作者: 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