public class SparseBooleanArray
extends Object
implements Cloneable
java.lang.Object | |
↳ | android.util.SparseBooleanArray |
SparseBooleanArrays将整数映射到布尔值。 与普通的布尔数组不同,指数中可能存在差距。 与使用HashMap将整数映射到布尔值相比,它的目的是提高内存效率,因为它避免了自动装箱键和值,并且其数据结构不依赖每个映射的额外入口对象。
请注意,此容器将其映射保存在数组数据结构中,并使用二进制搜索来查找键。 该实现不适用于可能包含大量项目的数据结构。 它通常比传统的HashMap慢,因为查找需要二分搜索并添加和删除需要插入和删除数组中的条目。 对于容纳数百种物品的容器,性能差异不显着,小于50%。
可以使用keyAt(int)
和valueAt(int)
遍历此容器中的项目。 使用keyAt(int)
对索引使用keyAt(int)
进行迭代,索引的升序值将按照升序返回键,或者在valueAt(int)
的情况下按照升序顺序返回键的值。
Public constructors |
|
---|---|
SparseBooleanArray() 创建一个不包含映射的新SparseBooleanArray。 |
|
SparseBooleanArray(int initialCapacity) 创建一个不包含映射的新SparseBooleanArray,它不需要任何额外的内存分配来存储指定数量的映射。 |
Public methods |
|
---|---|
void |
append(int key, boolean value) 将键/值对放入数组中,针对键大于数组中所有现有键的情况进行优化。 |
void |
clear() 从此SparseBooleanArray中移除所有键值映射。 |
SparseBooleanArray |
clone() 创建并返回此对象的副本。 |
void |
delete(int key) 如果有指定的键,则删除指定键的映射。 |
boolean |
equals(Object that) 指示其他某个对象是否“等于”这一个。 |
boolean |
get(int key) 获取从指定键映射的布尔值,如果没有这样的映射,则 |
boolean |
get(int key, boolean valueIfKeyNotFound) 获取从指定的键映射的布尔值,如果没有这样的映射,则获取指定的值。 |
int |
hashCode() 返回对象的哈希码值。 |
int |
indexOfKey(int key) 返回 |
int |
indexOfValue(boolean value) 返回 |
int |
keyAt(int index) 给定的索引的范围内 |
void |
put(int key, boolean value) 添加从指定键到指定值的映射,如果有指定键,则从指定键替换以前的映射。 |
int |
size() 返回此SparseBooleanArray当前存储的键值映射的数量。 |
String |
toString() 返回对象的字符串表示形式。 该实现通过遍历其映射来组成一个字符串。 |
boolean |
valueAt(int index) 给定范围 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
SparseBooleanArray (int initialCapacity)
创建一个不包含映射的新SparseBooleanArray,它不需要任何额外的内存分配来存储指定数量的映射。 如果您提供的初始容量为0,则稀疏数组将使用轻量级表示进行初始化,而不需要任何额外的数组分配。
Parameters | |
---|---|
initialCapacity |
int
|
void append (int key, boolean value)
将键/值对放入数组中,针对键大于数组中所有现有键的情况进行优化。
Parameters | |
---|---|
key |
int
|
value |
boolean
|
SparseBooleanArray clone ()
创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x
,表达式:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements. While it is typically the case that:
will bex.clone().equals(x)
true
, this is not an absolute requirement.
按照惯例,应该通过调用super.clone
来获得返回的对象。 如果一个类和它的所有超类( Object
除外)遵守这个约定,那将是这样的情况,即x.clone().getClass() == x.getClass()
。
按照惯例,这个方法返回的对象应该独立于这个对象(被克隆)。 为了实现这种独立性,可能有必要在返回之前修改super.clone
返回的对象的一个或多个字段。 通常,这意味着复制包含被克隆对象的内部“深层结构”的任何可变对象,并将这些对象的引用替换为对这些副本的引用。 如果一个类只包含原始字段或对不可变对象的引用,那么通常情况下不需要修改super.clone
返回的对象中的任何字段。
类Object
的方法clone
执行特定的克隆操作。 首先,如果该对象的类没有实现接口Cloneable
,则引发CloneNotSupportedException
。 请注意,所有数组都被视为实现接口Cloneable
并且数组类型T[]
的clone
方法的返回类型为T[]
,其中T是任何引用或基本类型。 否则,此方法创建该对象的类的新实例,并使用该对象的相应字段的内容来初始化其所有字段,就像通过赋值一样; 这些字段的内容本身并不克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。
类 Object
本身并不实现接口 Cloneable
,所以在类 Object
的对象上调用 clone
方法将导致在运行时抛出异常。
Returns | |
---|---|
SparseBooleanArray |
a clone of this instance. |
boolean equals (Object that)
指示其他某个对象是否“等于”这一个。
equals
方法在非空对象引用上实现等价关系:
x
, x.equals(x)
should return true
. x
and y
, x.equals(y)
should return true
if and only if y.equals(x)
returns true
. x
, y
, and z
, if x.equals(y)
returns true
and y.equals(z)
returns true
, then x.equals(z)
should return true
. x
and y
, multiple invocations of x.equals(y)
consistently return true
or consistently return false
, provided no information used in equals
comparisons on the objects is modified. x
, x.equals(null)
should return false
. equals
类的方法Object
实现了对象上最可能的等价关系; 也就是说,对于任何非空参考值x
和y
,当且仅当x
和y
引用同一对象( x == y
的值为true
)时,此方法返回true
。
请注意,无论何时重写此方法,通常都需要重写 hashCode
方法,以维护 hashCode
方法的常规协定,该方法声明等同对象必须具有相同的哈希码。
Parameters | |
---|---|
that |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj argument; false otherwise. |
boolean get (int key)
获取从指定键映射的布尔值,或者如果没有这样的映射,则 false
。
Parameters | |
---|---|
key |
int
|
Returns | |
---|---|
boolean |
boolean get (int key, boolean valueIfKeyNotFound)
获取从指定的键映射的布尔值,如果没有这样的映射,则获取指定的值。
Parameters | |
---|---|
key |
int
|
valueIfKeyNotFound |
boolean
|
Returns | |
---|---|
boolean |
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. |
int indexOfKey (int key)
返回 keyAt(int)
将返回指定键的索引,如果指定键未映射,则返回负数。
Parameters | |
---|---|
key |
int
|
Returns | |
---|---|
int |
int indexOfValue (boolean value)
返回valueAt(int)
将返回指定键的索引;如果没有键映射到指定值,则返回负数。 请注意,这是一种线性搜索,与按键查找不同,并且多个键可以映射到相同的值,而这只会查找其中的一个。
Parameters | |
---|---|
value |
boolean
|
Returns | |
---|---|
int |
int keyAt (int index)
给定的索引的范围内 0...size()-1
,从返回键 index
个密钥值的映射,这SparseBooleanArray商店。
升序索引对应的索引保证为升序,例如, keyAt(0)
将返回最小密钥, keyAt(size()-1)
将返回最大密钥。
Parameters | |
---|---|
index |
int
|
Returns | |
---|---|
int |
void put (int key, boolean value)
添加从指定键到指定值的映射,如果有指定键,则从指定键替换以前的映射。
Parameters | |
---|---|
key |
int
|
value |
boolean
|
String toString ()
返回对象的字符串表示形式。 通常, toString
方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
toString
类的方法Object
返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
该实现通过遍历其映射来组成一个字符串。
Returns | |
---|---|
String |
a string representation of the object. |
boolean valueAt (int index)
给定一个范围为 0...size()-1
的索引,返回此SparseBooleanArray存储的密钥值映射的第 index
个值。
与升序相对应的值保证与升序相关联,例如, valueAt(0)
将返回与最小密钥关联的值,而 valueAt(size()-1)
将返回与最大密钥关联的值。
Parameters | |
---|---|
index |
int
|
Returns | |
---|---|
boolean |