ฝรั่ง - ช่วงคลาส
ช่วงแสดงถึงช่วงเวลาหรือลำดับ ใช้เพื่อรับชุดตัวเลข / สตริงที่อยู่ในช่วงเฉพาะ
การประกาศคลาส
ต่อไปนี้เป็นคำประกาศสำหรับ com.google.common.collect.Range<C> ชั้นเรียน -
@GwtCompatible
public final class Range<C extends Comparable>
extends Object
implements Predicate<C>, Serializable
วิธีการ
ซีเนียร์ No | วิธีการและคำอธิบาย |
---|---|
1 | static <C extends Comparable<?>> Range<C> all() ส่งคืนช่วงที่มีค่าชนิด C ทุกค่า |
2 | boolean apply(C input)Deprecated. จัดทำขึ้นเพื่อตอบสนองอินเทอร์เฟซ Predicate เท่านั้น ใช้ประกอบด้วย (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) ส่งคืนช่วงที่มีค่าทั้งหมดที่มากกว่าหรือเท่ากับต่ำกว่าและน้อยกว่าหรือเท่ากับบน |
7 | static <C extends Comparable<?>> Range<C> closedOpen(C lower, C upper) ส่งคืนช่วงที่มีค่าทั้งหมดมากกว่าหรือเท่ากับต่ำกว่าและน้อยกว่าบนอย่างเคร่งครัด |
8 | boolean contains(C value) ส่งคืนค่าจริงหากค่าอยู่ภายในขอบเขตของช่วงนี้ |
9 | boolean containsAll(Iterable<? extends C> values) ส่งคืนจริงหากทุกองค์ประกอบในค่ามีอยู่ในช่วงนี้ |
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) ส่งคืนค่าจริงหากขอบเขตของสิ่งอื่นไม่ขยายออกไปนอกขอบเขตของช่วงนี้ |
13 | boolean equals(Object object) ส่งคืนค่าจริงหากออบเจ็กต์เป็นช่วงที่มีจุดสิ้นสุดและประเภทขอบเขตเดียวกันกับช่วงนี้ |
14 | static <C extends Comparable<?>> Range<C> greaterThan(C endpoint) ส่งคืนช่วงที่มีค่าทั้งหมดที่มากกว่าจุดสิ้นสุดอย่างเคร่งครัด |
15 | int hashCode() ส่งคืนรหัสแฮชสำหรับช่วงนี้ |
16 | boolean hasLowerBound() ส่งคืนจริงหากช่วงนี้มีจุดสิ้นสุดที่ต่ำกว่า |
17 | boolean hasUpperBound() ส่งคืนจริงหากช่วงนี้มีจุดสิ้นสุดบน |
18 | Range<C> intersection(Range<C> connectedRange) ส่งคืนช่วงสูงสุดที่ล้อมรอบโดยทั้งช่วงนี้และช่วงที่เชื่อมต่อหากมีช่วงดังกล่าว |
19 | boolean isConnected(Range<C> other) ส่งคืนค่าจริงหากมีช่วง (อาจว่างเปล่า) ซึ่งอยู่ในช่วงนี้และช่วงอื่น ๆ |
20 | boolean isEmpty() ส่งคืนค่าจริงหากช่วงนี้อยู่ในรูปแบบ [v..v) หรือ (v..v] |
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) ส่งคืนช่วงที่มีค่าทั้งหมดที่มากกว่าต่ำกว่าและน้อยกว่าบนอย่างเคร่งครัด |
25 | static <C extends Comparable<?>> Range<C> openClosed(C lower, C 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
ตัวอย่าง Range Class
สร้างโปรแกรม java ต่อไปนี้โดยใช้โปรแกรมแก้ไขที่คุณเลือกในการพูด 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("]");
}
}
ตรวจสอบผลลัพธ์
รวบรวมคลาสโดยใช้ 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 ]