一、构建区间
(a..b) | |
[a..b] | |
[a..b) | |
(a..b] | |
(a..+∞) | |
[a..+∞) | |
(-∞..b) | |
(-∞..b] | |
(-∞..+∞) |
有界区间 | |
无上界区间:((a..+∞) 或[a..+∞)) | |
无下界区间:((-∞..b) 或(-∞..b]) |
二、区间运算
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]