教程 > guava 教程 > 阅读:34

guava range 类——迹忆客-ag捕鱼王app官网

range 表示一个区间或一个序列。 它用于获取位于特定范围内的一组数字/字符串。


类声明

以下是 com.google.common.collect.range 类的声明

@gwtcompatible
public final class range
   extends object
      implements predicate, serializable

类方法

序号 方法 说明
1 static > range all() 返回包含 c 类型的每个值的范围。
2 boolean apply(c input)deprecated. 仅为满足predicate接口而提供; 使用 contains(c) 代替。
3 static > range atleast(c endpoint) 返回包含大于或等于端点的所有值的范围。
4 static > range atmost(c endpoint) 返回包含小于或等于端点的所有值的范围。
5 range canonical(discretedomain domain) 返回给定域中此范围的规范形式。
6 static > range closed(c lower, c upper) 返回包含所有大于或等于下限且小于或等于上限的值的范围。
7 static > range closedopen(c lower, c upper) 返回包含所有大于或等于下限且严格小于上限的值的范围。
8 boolean contains(c value) 如果值在此范围内,则返回 true。
9 boolean containsall(iterable values) 如果 values 中的每个元素都包含在此范围内,则返回 true。
10 static > range downto(c endpoint, boundtype boundtype) 返回给定端点的范围,该范围可以是包含(封闭)或排他(开放),没有上限。
11 static > range encloseall(iterable values) 返回包含所有给定值的最小范围。
12 boolean encloses(range other) 如果 other 的边界未超出此范围的边界,则返回 true。
13 boolean equals(object object) 如果 object 是一个具有与该范围相同的端点和绑定类型的范围,则返回 true。
14 static > range greaterthan(c endpoint) 返回包含严格大于端点的所有值的范围。
15 int hashcode() 返回此范围的哈希码。
16 boolean haslowerbound() 如果此范围具有下端点,则返回 true。
17 boolean hasupperbound() 如果此范围有上限,则返回 true。
18 range intersection(range connectedrange) 返回此范围和 connectedrange 包围的最大范围(如果存在这样的范围)。
19 boolean isconnected(range other) 如果存在一个(可能为空的)范围且同时被该范围和其他范围包围,则返回 true。
20 boolean isempty() 如果此范围的形式为 [v..v) 或 (v..v],则返回 true。
21 static > range lessthan(c endpoint) 返回包含严格小于端点的所有值的范围。
22 boundtype lowerboundtype() 返回此范围下限的类型:如果范围包含其下端点,则返回 boundtype.closed,如果不包含,则返回 boundtype.open
23 c lowerendpoint() 返回此范围的下端点。
24 static > range open(c lower, c upper) 返回一个范围,其中包含严格大于下限且严格小于上限的所有值。
25 static > range openclosed(c lower, c upper) 返回一个范围,其中包含严格大于下限且小于或等于上限的所有值。
26 static > range range(c lower, boundtype lowertype, c upper, boundtype uppertype) 返回包含从低到高的任何值的范围,其中每个端点可以是包含(封闭)或排他(开放)。
27 static > range singleton(c value) 返回仅包含给定值的范围。
28 range span(range other) 返回包含此范围和其他范围的最小范围。
29 string tostring() 返回此范围的字符串表示形式,例如“[3..5)”(类文档中列出了其他示例)。
30 boundtype upperboundtype() 返回此范围上限的类型:如果范围包括其上端点,则返回 boundtype.closed,否则返回 boundtype.open
31 c upperendpoint() 返回此范围的上限。
32 static > range upto(c endpoint, boundtype boundtype) 返回一个到给定端点没有下限的范围,该范围可以是包含(封闭)或排他(开放)。

方法继承

该类继承了以下类的方法 -

  • java.lang.object

range 类示例

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 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 range2 = range.open(0, 9);
      system.out.print("(0,9) : ");
      printrange(range2);
      //create a range (a,b] = { x | a < x <= b}
      range range3 = range.openclosed(0, 9);
      system.out.print("(0,9] : ");
      printrange(range3);
      //create a range [a,b) = { x | a <= x < b}
      range range4 = range.closedopen(0, 9);
      system.out.print("[0,9) : ");
      printrange(range4);
      //create an open ended range (9, infinity
      range 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 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 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 range8 = range.closed(5, 15);    
      //intersection
      printrange(range1.intersection(range8));
      //span
      printrange(range1.span(range8));
   }
   private void printrange(range 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 ]

查看笔记

扫码一下
查看教程更方便
网站地图