zoukankan      html  css  js  c++  java
  • guava(四)区间Ranges

    一、构建区间

    (a..b) open(C, C)
    [a..b] closed(C, C)
    [a..b) closedOpen(C, C)
    (a..b] openClosed(C, C)
    (a..+∞) greaterThan(C)
    [a..+∞) atLeast(C)
    (-∞..b) lessThan(C)
    (-∞..b] atMost(C)
    (-∞..+∞) all()
    有界区间 range(C, BoundType, C,   BoundType)
    无上界区间:((a..+∞) 或[a..+∞)) downTo(C, BoundType)
    无下界区间:((-∞..b) 或(-∞..b]) upTo(C, BoundType)

    二、区间运算

    contains

    Range.closed(1,10).contains(8) //true
    

    三、查询运算

    1、isEmpty() 是否为空区间

    Range.closed(10,10).isEmpty() //true
    

     2、hasLowerBound 是否含有下限

    Range.closed(10,10).hasLowerBound() //true
    

     3、hasUpperBound 是否含有上限

    Range.greaterThan(10).hasUpperBound() //false
    

     4、lowerBoundType 下边界类型,如果区间没有对应的边界,抛出IllegalStateException

    Range.greaterThan(10).lowerBoundType() //OPEN
    

     5、upperBoundType 上边界类型,如果区间没有对应的边界,抛出IllegalStateException

    Range.closed(2,10).upperBoundType() //CLOSED
    

    6、 lowerEndpoint 下限值,如果区间没有对应的边界,抛出IllegalStateException

    Range.closed(2,10).lowerEndpoint() //2
    

     7、upperEndpoint 上限值,如果区间没有对应的边界,抛出IllegalStateException

    Range.closed(2,10).upperEndpoint() //上限值
    

     四、关系运算

    1、encloses 是否包含

    Range.closed(2,10).encloses(Range.closed(3,3)) //true
    

     2、isConnected 是否相连

    Range.closed(2,10).isConnected(Range.closed(12,30))//false
    

     3、intersection 交集 ,当且仅当两个区间是相连的,它们才有交集。如果两个区间没有交集,该方法将抛出IllegalArgumentException

    Range.closed(2,10).intersection(Range.closed(8,13)) //[8,10]
    

     4、span 并集

    Range.closed(2,8).span(Range.closed(12,13))//[2,13]
    
  • 相关阅读:
    BZOJ 3529 数表
    BZOJ 3832 Rally
    BZOJ 1086 王室联邦
    BZOJ 2738 矩阵乘法
    2656565
    小L的区间求和
    小L的直线
    Co-prime 杭电4135
    POJ 跳蚤
    B
  • 原文地址:https://www.cnblogs.com/amei0/p/9988896.html
Copyright © 2011-2022 走看看