范围表示间隔或序列.它用于获取一组位于特定范围内的数字/字符串.
以下是 com的声明.google.common.collect.Range< C> class :
@GwtCompatible public final class Range<C extends Comparable> extends Object implements Predicate<C>, Serializable
Sr.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) 返回包含大于或等于endpoint的所有值的范围. |
4 | static <C extends Comparable<?>> Range<C> atMost(C endpoint) 返回包含小于或等于endpoint的所有值的范围. |
5 | Range<C> canonical(DiscreteDomain<C> domain) 返回给定域中此范围的规范形式. |
6 | static <C extends Comparable<?>> Range<C> closed(C lower, C upper) 返回包含大于或等于lower且小于或等于upper的所有值的范围. |
7 | static <C extends Comparable<?>> Range<C> closedOpen(C lower, C upper) 返回包含大于或等于lower且严格小于upper的所有值的范围. |
8 | boolean contains(C value) 如果值在此范围的范围内,则返回true. |
9 | boolean containsAll(Iterable<? extends C> values) 如果值中的每个元素都包含在此范围内,则返回true. |
10 | 静态< C extends Comparable<?>>范围< c取代; downTo(C端点,BoundType boundType) 返回给定端点的范围,该范围可以是包含(闭合)或独占(打开),没有上限. |
11 | static< C extends Comparable<?>>范围< c取代; encloseAll(Iterable< C> values) 返回包含所有给定值的最小范围. |
12 | 布尔值封闭(范围< C>其他) 如果其他边界不超出此范围的范围,则返回true. |
13 | boolean equals(Object object) 如果object是具有与此范围相同的端点和绑定类型的范围,则返回true. |
14 | static< C extends Comparable<?>>范围< c取代; greaterThan(C端点) 返回一个范围,其中包含严格大于endpoint的所有值. |
15 | int hashCode() 返回此范围的哈希码. |
16 | boolean hasLowerBound() 如果此范围的端点较低,则返回true. |
17 | boolean hasUpperBound( ) 如果此范围具有上限,则返回true. |
18 | 范围< C>交点(范围< C> connectedRange) 返回此范围和connectedRange所包含的最大范围(如果存在这样的范围). |
19 | boolean isConnected(Range<C> other) 如果存在一个(可能为空)范围,则该范围包含此范围和其他范围,则返回true. |
20 | boolean isEmpty() 如果此范围的格式为[v..v]或(v..v),则返回true. |
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) 返回一个范围,其中包含严格大于lower且严格小于upper的所有值. |
25 | static <C extends Comparable<?>> Range<C> openClosed(C lower, C upper) 返回一个范围,其中包含严格大于lower且小于或等于upper的所有值. |
26 | static <C extends Comparable<?>> Range<C> range(C lower, BoundType lowerType, C upper, BoundType upperType) 返回包含从lower到upper的任何值的范围,其中每个端点可以是包含的(关闭) )或独家(开放). |
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
使用您选择的任何编辑器创建以下java程序,例如 C:/>番石榴.
import com.google.common.collect. ContiguousSet; import com.google.common.collect.DiscreteDomain; import com.google.common.collect.Range; import com.google.common.primitives.Ints; 公共类GuavaTester { public static void main(String args []){ GuavaTester tester = new GuavaTester(); tester.testRange(); } private void testRange(){ //创建范围[a,b] = {x | a< = x< = b} 范围<整数> range1 = Range.closed(0,9); System.out.print("[0,9]:"); printRange(range1); System.out.println("5存在:"+ range1.contains(5)); System.out.println("(1,2,3)存在:"+ range1.containsAll(Ints.asList(1,2,3))); System.out.println("下界:"+ range1.lowerEndpoint()); System.out.println("Upper Bound:"+ range1.upperEndpoint()); //创建一个范围(a,b)= {x | a< x< b} 范围<整数> range2 = Range.open(0,9); System.out.print("(0,9):"); printRange(range2); //创建一个范围(a,b] = {x | a< x< = b} 范围<整数> range3 = Range.openClosed(0,9); System.out.print("(0,9]:"); printRange(range3); //创建范围[a,b)= {x | a< = x< b} 范围<整数> range4 = Range.closedOpen(0,9); System.out.print("[0,9):"); printRange(range4); //创建一个开放范围(9,无穷大 范围<整数> range5 = Range.greaterThan(9); System.out.println("(9, infinity):"); System.out.println("下界:"+ range5.lowerEndpoint()); System.out.println("上限存在:"+ range5.hasUpperBound( )); 范围<整数> range6 = Range.closed(3,5); printRange(range6); //检查子范围[3 ,[5]在[0,9] System.out.println("[0,9]包含[3,5]:"+ range1.encloses(range6)); 范围<整数> range7 = Range.closed(9,20); printRange(range7); //检查要连接的范围 System.out.println(" [0,9]连接[9,20]:"+ range1.isConnected(range7)); 范围<整数> range8 = Range.closed(5,15); //交点 printRange(range1.intersection(range8)); //span printRange(ran ge1.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 ]