Java で範囲を作成する

Rupam Yadav 2023年10月12日
  1. 数値が Java の範囲内にあるかどうかを作成して確認する
  2. Java で GuavaRange を使用して範囲を作成する
  3. Java で Apache 範囲を使用して範囲を作成する
  4. Java で ValueRange を使用して範囲を作成する
Java で範囲を作成する

Java のさまざまなライブラリは、範囲を作成し、作成された範囲の間に特定の数が存在するかどうかを確認できます。また、Java の従来の方法を使用して、指定された数値が範囲の最小値と最大値の間に含まれているかどうかを確認することもできます。このタスクを実行するために、サードパーティのライブラリと従来の方法を使用してみましょう。

数値が Java の範囲内にあるかどうかを作成して確認する

これは、数値が範囲内にあるかどうかを確認する従来の方法です。引数として渡します。ここでは、メンバー変数に渡された引数を初期化するためのデフォルトのコンストラクターを持つクラス InRange を作成しました。範囲を作成し、その数が範囲内にあるかどうかを確認します。

new キーワードを使用して InRange クラスの instance を作成し、デフォルトのコンストラクターで範囲の下限値と上限値を渡します。次に、number``501099 の範囲内にあるかどうかを確認します。

containsInRange() メソッドを呼び出します。このメソッドは、number >= lowerRange && number <= highRange ステートメントを使用して、数値が下限範囲以上で上限範囲以下であるかどうかのブールチェックを返します。したがって、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 で GuavaRange を使用して範囲を作成する

これはサードパーティのライブラリです。Guava Range は、境界を形成する端点 ab の間隔を表します。数字が ab の間にあるかどうかを確認します。

このライブラリに必要な Maven の依存関係を以下に示します。

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

標準のファクトリメソッドを使用して、このタイプの範囲インスタンスを作成します。作成される範囲は、排他的または包括的エンドポイントに基づいてオープンまたはクローズになります。

メソッド open(a,b) は、<範囲<b を表す範囲を作成して返します。つまり、ab は除外されます。メソッド closed(a, b)の場合、範囲は a<=範囲<=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 範囲を使用して範囲を作成する

Apache Range は、数値が範囲内にあるかどうかを確認するためのもう 1つのサードパーティライブラリです。このライブラリの Maven 依存関係を以下に示します。

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

Apache Range クラスは、最小値から最大値(両端を含む)までの値の範囲を表します。ファクトリメソッド between() を使用して testRange インスタンスを作成しました。これは、10 から 34 までの範囲を表します。つまり、範囲にはこれら 2つの値も含まれます。

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