guava(四)區間Ranges
阿新 • • 發佈:2018-11-20
一、構建區間
(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]