public final class Range
extends Object
java.lang.Object | |
↳ | android.util.Range<T extends java.lang.Comparable<? super T>> |
用于描述两个数值范围的不可变类。
范围(或“间隔”)定义了一些Comparable
类型值的连续范围周围的包含边界; 例如“从1到100的整数”。
所有范围都是有界的,范围的左侧总是 >=
范围的右侧。
虽然实现本身是不可变的,但存储的对象也必须是不可变的。 如果可变对象存储在此处,则范围有效变为可变。
Public constructors |
|
---|---|
Range(T lower, T upper) 创建一个新的不可变范围。 |
Public methods |
|
---|---|
T |
clamp(T value)
|
boolean |
contains(Range<T> range) 检查另一个 |
boolean |
contains(T value) 检查 |
static <T extends Comparable<? super T>> Range<T> |
create(T lower, T upper) 创建一个新的不可变范围,并推断出参数类型。 |
boolean |
equals(Object obj) 比较两个范围的相等性。 |
Range<T> |
extend(Range<T> range) 返回包含此范围的最小范围,以及另一个 |
Range<T> |
extend(T value) 返回包含此范围和 |
Range<T> |
extend(T lower, T upper) 返回包含此范围的最小范围以及由 |
T |
getLower() 获取较低端点。 |
T |
getUpper() 获取高端端点。 |
int |
hashCode() 返回对象的哈希码值。 |
Range<T> |
intersect(T lower, T upper) 返回此范围与 |
Range<T> |
intersect(Range<T> range) 返回此范围与另一个 |
String |
toString() 以字符串表示 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Range (T lower, T upper)
创建一个新的不可变范围。
终点是[lower, upper]
; 那就是范围有界。 lower
必须是lesser or equal
到upper
。
Parameters | |
---|---|
lower |
T : The lower endpoint (inclusive) |
upper |
T : The upper endpoint (inclusive) |
Throws | |
---|---|
NullPointerException |
if lower or upper is null |
T clamp (T value)
value
到这个范围。
如果该值在此范围内,则返回。 否则,如果它是比较<
,则返回较低端点,否则返回较高端点。 使用Comparable
接口进行比较。
Parameters | |
---|---|
value |
T : a non-null T reference |
Returns | |
---|---|
T |
value clamped to this range. |
boolean contains (Range<T> range)
检查另一个 range
是否在此范围内。
如果两个端点均在此范围内,则认为范围在此范围内。
Parameters | |
---|---|
range |
Range : a non-null T reference |
Returns | |
---|---|
boolean |
true if the range is within this inclusive range, false otherwise |
Throws | |
---|---|
NullPointerException |
if range was null |
boolean contains (T value)
检查 value
是否在此范围内。
如果值是 >=
下端点 和 <=
上端点(使用 Comparable
接口),则认为该值在此范围内。
Parameters | |
---|---|
value |
T : a non-null T reference |
Returns | |
---|---|
boolean |
true if the value is within this inclusive range, false otherwise |
Throws | |
---|---|
NullPointerException |
if value was null |
Range<T> create (T lower, T upper)
创建一个新的不可变范围,并推断出参数类型。
终点是[lower, upper]
; 那就是范围有界。 lower
必须是lesser or equal
到upper
。
Parameters | |
---|---|
lower |
T : The lower endpoint (inclusive) |
upper |
T : The upper endpoint (inclusive) |
Returns | |
---|---|
Range<T> |
Throws | |
---|---|
NullPointerException |
if lower or upper is null |
boolean equals (Object obj)
比较两个范围的相等性。
当且仅当下端点和上端点也相等时,才认为范围相等。
Parameters | |
---|---|
obj |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if the ranges are equal, false otherwise |
Range<T> extend (Range<T> range)
返回包含此范围的最小范围,以及另一个 range
。
例如,如果一个<
b <
Ç <
d,的[A,C]和[B,d]范围的扩展名是[A,d]。 由于端点是对象引用,因此不能保证从输入范围使用哪个特定的端点引用:
例如,如果一个 ==
一个' <
b <
C,[A,B]和延长[A',C]的范围可以是任一[A,C]或[ 'A,C],其中,[' A,C]可以是确切的输入范围,也可以是具有相同端点的新创建的范围。
Parameters | |
---|---|
range |
Range : a non-null Range<T> reference |
Returns | |
---|---|
Range<T> |
the extension of this range and the other range. |
Throws | |
---|---|
NullPointerException |
if range was null |
Range<T> extend (T value)
返回包含此范围和 value
的最小范围。
有关更多详细信息,请参阅 extend(Range)
,因为此方法相当于 extend(Range.create(value, value))
。
Parameters | |
---|---|
value |
T : a non-null T reference |
Returns | |
---|---|
Range<T> |
the extension of this range and the value. |
Throws | |
---|---|
NullPointerException |
if value was null |
Range<T> extend (T lower, T upper)
返回包含此范围的最小范围以及由 [lower, upper]
指定的包含范围。
See extend(Range)
for more details.
Parameters | |
---|---|
lower |
T : a non-null T reference |
upper |
T : a non-null T reference |
Returns | |
---|---|
Range<T> |
the extension of this range and the other range. |
Throws | |
---|---|
NullPointerException |
if lower or upper was null |
int hashCode ()
返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap
提供的HashMap
。
hashCode
的总合同是:
hashCode
method must consistently return the same integer, provided no information used in equals
comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. equals(Object)
method, then calling the hashCode
method on each of the two objects must produce the same integer result. equals(java.lang.Object)
method, then calling the hashCode
method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. 尽可能合理实用,类Object
定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)
Returns | |
---|---|
int |
a hash code value for this object. |
Range<T> intersect (T lower, T upper)
返回此范围与 [lower, upper]
指定的包含范围的 [lower, upper]
。
有关更多详细信息,请参阅 intersect(Range)
。
Parameters | |
---|---|
lower |
T : a non-null T reference |
upper |
T : a non-null T reference |
Returns | |
---|---|
Range<T> |
the intersection of this range and the other range |
Throws | |
---|---|
NullPointerException |
if lower or upper was null |
IllegalArgumentException |
if the ranges are disjoint. |
Range<T> intersect (Range<T> range)
返回此范围与另一个 range
。
例如,如果一个<
b <
Ç <
d,的[A,C]和[B,d]范围的交点为[B,C]。 由于端点是对象引用,因此不能保证从输入范围使用哪个特定的端点引用:
例如,如果a [ ==
<
b <
c,[a,b]和[a',c]范围的交集可以是[a,b]或['a,b],其中[a,b]可以要么是确切的输入范围,要么是具有相同端点的新创建的范围。
Parameters | |
---|---|
range |
Range : a non-null Range<T> reference |
Returns | |
---|---|
Range<T> |
the intersection of this range and the other range. |
Throws | |
---|---|
NullPointerException |
if range was null |
IllegalArgumentException |
if the ranges are disjoint. |
String toString ()
以字符串表示 "[lower, upper]"
返回范围 "[lower, upper]"
。
Returns | |
---|---|
String |
string representation of the range |