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 ]