Guave - Reichweitenklasse

Der Bereich repräsentiert ein Intervall oder eine Sequenz. Es wird verwendet, um eine Reihe von Zahlen / Zeichenfolgen zu erhalten, die in einem bestimmten Bereich liegen.

Klassenerklärung

Es folgt die Erklärung für com.google.common.collect.Range<C> Klasse -

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

Methoden

Sr.Nr. Methode & Beschreibung
1

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

Gibt einen Bereich zurück, der jeden Wert vom Typ C enthält.

2

boolean apply(C input)Deprecated.

Wird nur bereitgestellt, um die Predicate-Schnittstelle zu erfüllen. Verwenden Sie stattdessen (C).

3

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

Gibt einen Bereich zurück, der alle Werte enthält, die größer oder gleich dem Endpunkt sind.

4

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

Gibt einen Bereich zurück, der alle Werte enthält, die kleiner oder gleich dem Endpunkt sind.

5

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

Gibt die kanonische Form dieses Bereichs in der angegebenen Domäne zurück.

6

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

Gibt einen Bereich zurück, der alle Werte enthält, die größer oder gleich niedriger und kleiner oder gleich oben sind.

7

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

Gibt einen Bereich zurück, der alle Werte enthält, die größer oder gleich niedriger und streng kleiner als oben sind.

8

boolean contains(C value)

Gibt true zurück, wenn der Wert innerhalb der Grenzen dieses Bereichs liegt.

9

boolean containsAll(Iterable<? extends C> values)

Gibt true zurück, wenn jedes Element in Werten in diesem Bereich enthalten ist.

10

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

Gibt einen Bereich vom angegebenen Endpunkt zurück, der entweder inklusive (geschlossen) oder exklusiv (offen) ohne Obergrenze sein kann.

11

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

Gibt den minimalen Bereich zurück, der alle angegebenen Werte enthält.

12

boolean encloses(Range<C> other)

Gibt true zurück, wenn die Grenzen anderer nicht außerhalb der Grenzen dieses Bereichs liegen.

13

boolean equals(Object object)

Gibt true zurück, wenn object ein Bereich mit denselben Endpunkten und gebundenen Typen wie dieser Bereich ist.

14

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

Gibt einen Bereich zurück, der alle Werte enthält, die streng größer als der Endpunkt sind.

15

int hashCode()

Gibt einen Hash-Code für diesen Bereich zurück.

16

boolean hasLowerBound()

Gibt true zurück, wenn dieser Bereich einen niedrigeren Endpunkt hat.

17

boolean hasUpperBound()

Gibt true zurück, wenn dieser Bereich einen oberen Endpunkt hat.

18

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

Gibt den maximalen Bereich zurück, der sowohl von diesem Bereich als auch von connectionRange eingeschlossen ist, falls ein solcher Bereich vorhanden ist.

19

boolean isConnected(Range<C> other)

Gibt true zurück, wenn ein (möglicherweise leerer) Bereich vorhanden ist, der sowohl von diesem als auch von diesem Bereich eingeschlossen ist.

20

boolean isEmpty()

Gibt true zurück, wenn dieser Bereich die Form [v..v) oder (v..v] hat.

21

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

Gibt einen Bereich zurück, der alle Werte enthält, die strikt unter dem Endpunkt liegen.

22

BoundType lowerBoundType()

Gibt den Typ der Untergrenze dieses Bereichs zurück: BoundType.CLOSED, wenn der Bereich seinen unteren Endpunkt enthält, BoundType.OPEN, wenn dies nicht der Fall ist.

23

C lowerEndpoint()

Gibt den unteren Endpunkt dieses Bereichs zurück.

24

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

Gibt einen Bereich zurück, der alle Werte enthält, die streng größer als unten und streng kleiner als oben sind.

25

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

Gibt einen Bereich zurück, der alle Werte enthält, die streng größer als niedriger und kleiner als oder gleich oben sind.

26

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

Gibt einen Bereich zurück, der einen beliebigen Wert von unten nach oben enthält, wobei jeder Endpunkt entweder inklusive (geschlossen) oder exklusiv (offen) sein kann.

27

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

Gibt einen Bereich zurück, der nur den angegebenen Wert enthält.

28

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

Gibt den minimalen Bereich zurück, der sowohl diesen als auch den anderen Bereich umfasst.

29

String toString()

Gibt eine Zeichenfolgendarstellung dieses Bereichs zurück, z. B. "[3..5)" (andere Beispiele sind in der Klassendokumentation aufgeführt).

30

BoundType upperBoundType()

Gibt den Typ der Obergrenze dieses Bereichs zurück: BoundType.CLOSED, wenn der Bereich seinen oberen Endpunkt enthält, BoundType.OPEN, wenn dies nicht der Fall ist.

31

C upperEndpoint()

Gibt den oberen Endpunkt dieses Bereichs zurück.

32

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

Gibt einen Bereich ohne Untergrenze bis zum angegebenen Endpunkt zurück, der entweder inklusive (geschlossen) oder exklusiv (offen) sein kann.

Vererbte Methoden

Diese Klasse erbt Methoden von der folgenden Klasse:

  • java.lang.Object

Beispiel einer Bereichsklasse

Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl C:/> Guava.

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("]");
   }
}

Überprüfen Sie das Ergebnis

Kompilieren Sie die Klasse mit javac Compiler wie folgt -

C:\Guava>javac GuavaTester.java

Führen Sie nun den GuavaTester aus, um das Ergebnis anzuzeigen.

C:\Guava>java GuavaTester

Siehe das Ergebnis.

[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 ]