SparseArray 类

定义

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 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。 SparseArray 其内存效率高于 <c>HashMap</c>,因为它可避免自动装箱键,并且其数据结构不依赖于每个映射的额外条目对象。

请注意,此容器使用二进制搜索查找键,将其映射保存在数组数据结构中。 实现不适用于可能包含大量项的数据结构。 它通常比一个慢, HashMap 因为查找需要二进制搜索,并且添加和删除需要插入和删除数组中的条目。 对于包含多达数百个项目的容器,性能差异小于 50%。

为了帮助提高性能,容器在删除键时包括优化:它不立即压缩其数组,而是将已删除的条目标记为已删除。 然后,可以在单个已删除条目的垃圾回收中重新用于同一个键或压缩条目。 每当需要增大数组或检索地图大小或条目值时,都必须执行此垃圾回收。

可以使用和 #valueAt(int). 循环访问此容器#keyAt(int)中的项。 使用 keyAt(int) 索引的升序值循环访问键会按升序返回键。 在这种情况下 valueAt(int),将按升序返回与键对应的值。

适用于 . 的 android.util.SparseArrayJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

SparseArray()

创建包含无映射的新稀疏Array。

SparseArray(Int32)

创建一个新的稀疏Array,其中包含不需要任何其他内存分配来存储指定数量的映射的映射。

SparseArray(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
JniPeerMembers

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

PeerReference

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

Append(Int32, Object)

将键/值对放入数组,针对键大于数组中所有现有键的情况进行优化。

Clear()

从此稀疏Array 中删除所有键值映射。

Clone()

创建并返回此 Object副本。

Contains(Int32)

如果数组中存在键,则返回 true。

ContentEquals(SparseArray)

将此内容与指定的SparseArray内容SparseArray进行比较。

ContentHashCode()

返回此 SparseArray内容的哈希代码值,并 Objects#hashCode(Object) 结合其所有键和值的结果。

Delete(Int32)

从指定键中删除映射(如果有)。

Dispose()

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
Dispose(Boolean)

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
Get(Int32)

获取从指定键映射的对象,或者 null 如果没有进行此类映射。

Get(Int32, Object)

获取从指定键映射的对象;如果未进行此类映射,则获取指定的对象。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IndexOfKey(Int32)

返回将返回指定键的索引 #keyAt ;如果未映射指定键,则返回负数。

IndexOfValue(Object)

返回一个索引,如果 #valueAt 没有任何键映射到指定的值,则返回一个负数。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
KeyAt(Int32)

给定区域中 0...size()-1的索引,从此稀疏Array 存储的第四个键值映射中返回键 index

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Put(Int32, Object)

将指定键中的映射添加到指定值,替换指定键中的上一个映射(如果有)。

Remove(Int32)

#delete(int) 的别名。

RemoveAt(Int32)

删除指定索引处的映射。

RemoveAtRange(Int32, Int32)

删除批处理形式的映射范围。

Set(Int32, Object)

支持 Kotlin [index]= 运算符的 #put(int, Object) 别名。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetValueAt(Int32, Object)

给定区域中 0...size()-1的索引,为此稀疏Array 存储的第 index四个键值映射设置一个新值。

Size()

返回此稀疏Array 当前存储的键值映射数。

ToArray<T>()

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
ValueAt(Int32)

给定区域中 0...size()-1的索引,返回此稀疏Array 存储的第 index三个键值映射中的值。

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()

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
IJavaPeerable.Finalized()

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

GetJniTypeName(IJavaPeerable)

SparseArray 将整数映射到对象,并且与对象的普通数组不同,其索引可以包含间隙。

适用于