Guava-range-class

提供:Dev Guides
移動先:案内検索

グアバ-範囲クラス

範囲は、間隔またはシーケンスを表します。 特定の範囲にある数字/文字列のセットを取得するために使用されます。

クラス宣言

以下は com.google.common.collect.Range <C> クラスの宣言です-

@GwtCompatible
public final class Range<C extends Comparable>
   extends Object
      implements Predicate<C>, Serializable

方法

Sr.No Method & Description
1

static <C extends Comparable<?>> Range<C> all()

タイプCのすべての値を含む範囲を返します。

2

boolean apply(C input)Deprecated.

Predicateインターフェースを満たすためにのみ提供されます。代わりにcontains(C)を使用してください。

3

static <C extends Comparable<?>> Range<C> atLeast(C endpoint)

エンドポイント以上のすべての値を含む範囲を返します。

4

static <C extends Comparable<?>> Range<C> atMost(C endpoint)

エンドポイント以下のすべての値を含む範囲を返します。

5

Range<C> canonical(DiscreteDomain<C> domain)

指定されたドメイン内のこの範囲の正規形を返します。

6

static <C extends Comparable<?>> Range<C> closed(C lower, C upper)

lower以上、upper以下のすべての値を含む範囲を返します。

7

static <C extends Comparable<?>> Range<C> closedOpen(C lower, C upper)

lower以上、厳密にupper未満のすべての値を含む範囲を返します。

8

boolean contains(C value)

値がこの範囲の境界内にある場合、trueを返します。

9

boolean containsAll(Iterable<? extends C> values)

値のすべての要素がこの範囲に含まれる場合、trueを返します。

10

static <C extends Comparable<?>> Range<C> downTo(C endpoint, BoundType boundType)

指定されたエンドポイントから範囲を返します。これは、上限なしで包括的(クローズ)または排他的(オープン)のいずれかです。

11

static <C extends Comparable<?>> Range<C> encloseAll(Iterable<C> values)

指定されたすべての値を含む最小範囲を返します。

12

boolean encloses(Range<C> other)

他の境界がこの範囲の境界の外側に拡張されていない場合、trueを返します。

13

boolean equals(Object object)

オブジェクトがこの範囲と同じエンドポイントとバインドされたタイプを持つ範囲である場合、trueを返します。

14

static <C extends Comparable<?>> Range<C> greaterThan(C endpoint)

エンドポイントよりも厳密に大きいすべての値を含む範囲を返します。

15

int hashCode()

この範囲のハッシュコードを返します。

16

boolean hasLowerBound()

この範囲の終点が低い場合、trueを返します。

17

boolean hasUpperBound()

この範囲に上限がある場合、trueを返します。

18

Range<C> intersection(Range<C> connectedRange)

そのような範囲が存在する場合、この範囲とconnectedRangeの両方で囲まれた最大範囲を返します。

19

boolean isConnected(Range<C> other)

この範囲と他の範囲の両方で囲まれた(おそらく空の)範囲が存在する場合、trueを返します。

20

boolean isEmpty()

この範囲の形式が[v..v)または(v..v]の場合、trueを返します。

21

static <C extends Comparable<?>> Range<C> lessThan(C endpoint)

エンドポイントよりも厳密に小さい値をすべて含む範囲を返します。

22

BoundType lowerBoundType()

この範囲の下限のタイプを返します。範囲に下限が含まれる場合はBoundType.CLOSED、含まれない場合はBoundType.OPENです。

23

C lowerEndpoint()

この範囲の下端を返します。

24

static <C extends Comparable<?>> Range<C> open(C lower, C upper)

厳密にlowerより大きく、厳密にupperより小さいすべての値を含む範囲を返します。

25

static <C extends Comparable<?>> Range<C> openClosed(C lower, C upper)

厳密にlowerより大きく、upper以下のすべての値を含む範囲を返します。

26

static <C extends Comparable<?>> Range<C> range(C lower, BoundType lowerType, C upper, BoundType upperType)

下限から上限までの任意の値を含む範囲を返します。各エンドポイントは、包括的(クローズ)または排他的(オープン)のいずれかです。

27

static <C extends Comparable<?>> Range<C> singleton(C value)

指定された値のみを含む範囲を返します。

28

Range<C> span(Range<C> other)

この範囲と他の範囲の両方を囲む最小範囲を返します。

29

String toString()

「[3..5)」など、この範囲の文字列表現を返します(他の例はクラスのドキュメントにリストされています)。

30

BoundType upperBoundType()

この範囲の上限のタイプを返します。範囲に上限が含まれる場合はBoundType.CLOSED、含まれない場合はBoundType.OPENです。

31

C upperEndpoint()

この範囲の上端点を返します。

32

static <C extends Comparable<?>> Range<C> upTo(C endpoint, BoundType boundType)

指定されたエンドポイントまでの下限のない範囲を返します。これは、包括的(クローズ)または排他的(オープン)のいずれかです。

継承されるメソッド

このクラスは、次のクラスからメソッドを継承します-

  • java.lang.Object

範囲クラスの例

たとえば、* C:/> Guava。*で選択したエディターを使用して、次のJavaプログラムを作成します。

GuavaTester.java

import com.google.common.collect.ContiguousSet;
import com.google.common.collect.DiscreteDomain;
import com.google.common.collect.Range;
import com.google.common.primitives.Ints;

public class GuavaTester {

   public static void main(String args[]) {
      GuavaTester tester = new GuavaTester();
      tester.testRange();
   }

   private void testRange() {

     //create a range [a,b] = { x | a <= x <= b}
      Range<Integer> range1 = Range.closed(0, 9);
      System.out.print("[0,9] : ");
      printRange(range1);

      System.out.println("5 is present: " + range1.contains(5));
      System.out.println("(1,2,3) is present: " + range1.containsAll(Ints.asList(1, 2, 3)));
      System.out.println("Lower Bound: " + range1.lowerEndpoint());
      System.out.println("Upper Bound: " + range1.upperEndpoint());

     //create a range (a,b) = { x | a < x < b}
      Range<Integer> range2 = Range.open(0, 9);
      System.out.print("(0,9) : ");
      printRange(range2);

     //create a range (a,b] = { x | a < x <= b}
      Range<Integer> range3 = Range.openClosed(0, 9);
      System.out.print("(0,9] : ");
      printRange(range3);

     //create a range [a,b) = { x | a <= x < b}
      Range<Integer> range4 = Range.closedOpen(0, 9);
      System.out.print("[0,9) : ");
      printRange(range4);

     //create an open ended range (9, infinity
      Range<Integer> range5 = Range.greaterThan(9);
      System.out.println("(9,infinity) : ");
      System.out.println("Lower Bound: " + range5.lowerEndpoint());
      System.out.println("Upper Bound present: " + range5.hasUpperBound());

      Range<Integer> range6 = Range.closed(3, 5);
      printRange(range6);

     //check a subrange [3,5] in [0,9]
      System.out.println("[0,9] encloses [3,5]:" + range1.encloses(range6));

      Range<Integer> range7 = Range.closed(9, 20);
      printRange(range7);

     //check ranges to be connected
      System.out.println("[0,9] is connected [9,20]:" + range1.isConnected(range7));
      Range<Integer> range8 = Range.closed(5, 15);

     //intersection
      printRange(range1.intersection(range8));

     //span
      printRange(range1.span(range8));
   }

   private void printRange(Range<Integer> range) {

      System.out.print("[ ");

      for(int grade : ContiguousSet.create(range, DiscreteDomain.integers())) {
         System.out.print(grade +" ");
      }
      System.out.println("]");
   }
}

結果を確認する

次のように javac コンパイラを使用してクラスをコンパイルします-

C:\Guava>javac GuavaTester.java

GuavaTesterを実行して結果を確認します。

C:\Guava>java GuavaTester

結果をご覧ください。

[0,9] : [ 0 1 2 3 4 5 6 7 8 9 ]
5 is present: true
(1,2,3) is present: true
Lower Bound: 0
Upper Bound: 9
(0,9) : [ 1 2 3 4 5 6 7 8 ]
(0,9] : [ 1 2 3 4 5 6 7 8 9 ]
[0,9) : [ 0 1 2 3 4 5 6 7 8 ]
(9,infinity) :
Lower Bound: 9
Upper Bound present: false
[ 3 4 5 ]
[0,9] encloses [3,5]:true
[ 9 10 11 12 13 14 15 16 17 18 19 20 ]
[0,9] is connected [9,20]:true
[ 5 6 7 8 9 ]
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]