ฝรั่ง - ช่วงคลาส

ช่วงแสดงถึงช่วงเวลาหรือลำดับ ใช้เพื่อรับชุดตัวเลข / สตริงที่อยู่ในช่วงเฉพาะ

การประกาศคลาส

ต่อไปนี้เป็นคำประกาศสำหรับ 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 ]