SparseArray 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
SparseArray
将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。
[Android.Runtime.Register("android/util/SparseArray", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class SparseArray : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.ICloneable
[<Android.Runtime.Register("android/util/SparseArray", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type SparseArray = class
inherit Object
interface ICloneable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 继承
- 派生
- 属性
- 实现
注解
SparseArray
将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。 SparseArray
其内存效率高于 <c>HashMap</c>,因为它可避免自动装箱键,并且其数据结构不依赖于每个映射的额外条目对象。
请注意,此容器使用二进制搜索查找键,将其映射保存在数组数据结构中。 实现不适用于可能包含大量项的数据结构。 它通常比一个慢, HashMap
因为查找需要二进制搜索,并且添加和删除需要插入和删除数组中的条目。 对于包含多达数百个项目的容器,性能差异小于 50%。
为了帮助提高性能,容器在删除键时包括优化:它不立即压缩其数组,而是将已删除的条目标记为已删除。 然后,可以在单个已删除条目的垃圾回收中重新用于同一个键或压缩条目。 每当需要增大数组或检索地图大小或条目值时,都必须执行此垃圾回收。
可以使用和 #valueAt(int)
. 循环访问此容器#keyAt(int)
中的项。 使用 keyAt(int)
索引的升序值循环访问键会按升序返回键。 在这种情况下 valueAt(int)
,将按升序返回与键对应的值。
适用于 . 的 android.util.SparseArray
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
SparseArray() |
创建包含无映射的新稀疏Array。 |
SparseArray(Int32) |
创建一个新的稀疏Array,其中包含不需要任何其他内存分配来存储指定数量的映射的映射。 |
SparseArray(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
PeerReference |
|
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
Append(Int32, Object) |
将键/值对放入数组,针对键大于数组中所有现有键的情况进行优化。 |
Clear() |
从此稀疏Array 中删除所有键值映射。 |
Clone() |
创建并返回此 |
Contains(Int32) |
如果数组中存在键,则返回 true。 |
ContentEquals(SparseArray) |
将此内容与指定的 |
ContentHashCode() |
返回此 |
Delete(Int32) |
从指定键中删除映射(如果有)。 |
Dispose() |
|
Dispose(Boolean) |
|
Equals(Object) |
指示其他对象是否“等于”此对象。 (继承自 Object) |
Get(Int32) |
获取从指定键映射的对象,或者 |
Get(Int32, Object) |
获取从指定键映射的对象;如果未进行此类映射,则获取指定的对象。 |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
IndexOfKey(Int32) |
返回将返回指定键的索引 |
IndexOfValue(Object) |
返回一个索引,如果 |
JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
KeyAt(Int32) |
给定区域中 |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
Put(Int32, Object) |
将指定键中的映射添加到指定值,替换指定键中的上一个映射(如果有)。 |
Remove(Int32) |
|
RemoveAt(Int32) |
删除指定索引处的映射。 |
RemoveAtRange(Int32, Int32) |
删除批处理形式的映射范围。 |
Set(Int32, Object) |
支持 Kotlin [index]= 运算符的 |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
SetValueAt(Int32, Object) |
给定区域中 |
Size() |
返回此稀疏Array 当前存储的键值映射数。 |
ToArray<T>() |
|
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
UnregisterFromRuntime() |
|
ValueAt(Int32) |
给定区域中 |
Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
显式接口实现
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|