guava中Range的使用方法(com.google.common.collect.Range)

1.构造Range实例必须使用Range中的静态方法,因为Range的构造方法被设置为private,当a > b使,或者当a == b且为(a,b)时会抛出IllegalArgumentException

            (a,b)	          Range.open(a, b)
           (a, b]	          Range.openClosed(a, b)
           [a, b]	          Range.Closed(a, b)
           [a, b)	          Range.closedOpen(a, b)
         [a, +∞)	          Range.atLeast(a)
         (a, +∞)	          Range.greatThan(a)
         (-∞, b]	          Range.atMost(b)
         (-∞, b)	          Range.lessThan(b)
        (-∞, +∞)	          Range.all()
  1. Range的一些常用方法

    <1>. contains()方法用来判断区间是否包含一个给定的值

    Range.closed(1, 3).contains(2);//return true
    
    Range.closed(1, 3).contains(4);//return false
    

<2>.hasLowerBound()方法和hasUpperBound()方法是用来判断边界是否为无穷

   Range.greaterThan(3).hasLowerBound() //return true

   Range.greaterThan(3).hasUpperBound() //return false

   Range.lessThan(3).hasLowerBound() //return false

   Range.lessThan(3).hasUpperBound() //return true  

<3>.lowerBoundType()方法和upperBoundType()方法用来返回边界类型(OPEN, CLOSED),

若边界是无穷,则抛出 IllegalStateException

<4>.lowerEndpoint()和upperEndpoint():返回区间的端点值;如果区间的端点值为无穷,抛出 IllegalStateException

<5>.isconnect()判断连个区间是否能连在一起

<6>.intersection(Range)返回两个区间的交集:既包含于第一个区间,又包含于另一个区间的最大区间。当且仅当两个区间是相连的,它们才有交集。如果两个区间没有交集,该方法将抛出IllegalArgumentException。

  <7>.span(Range)返回”同时包括两个区间的最小区间”
上一篇:Java实现需求的上下移动排序,利用索引方式实现


下一篇:linux下mysql的简单使用