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]

 

转载于:https://www.cnblogs.com/amei0/p/9988896.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值