SparseArray 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
SparseArray
會將整數對應至 Objects,而且與 Objects 的一般數位不同,其索引可以包含間距。
[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
會將整數對應至 Objects,而且與 Objects 的一般數位不同,其索引可以包含間距。 SparseArray
是要比 <cHashMap></c> 更有記憶體效率,因為它可避免自動 Boxing 索引鍵及其數據結構不依賴每個對應的額外項目物件。
請注意,此容器會使用二進位搜尋來尋找索引鍵,將其對應保留在陣列數據結構中。 實作不適用於可能包含大量專案的數據結構。 它通常比 慢, HashMap
因為查閱需要二進位搜尋,而且新增和移除需要插入和刪除數位中的專案。 對於保存最多數百個專案的容器,效能差異小於50%。
為了協助達到效能,容器會在移除索引鍵時包含優化:與其立即壓縮其陣列,而是讓移除的項目標示為已刪除。 然後,專案可以重新用於相同的索引鍵,或稍後在所有已移除專案的單一垃圾收集中壓縮。 每當陣列需要成長,或擷取地圖大小或專案值時,都必須執行此垃圾收集。
您可以使用 和 #valueAt(int)
來逐一查看此容器#keyAt(int)
中的專案。 使用 keyAt(int)
索引的遞增值逐一查看索引鍵,會以遞增順序傳回索引鍵。 在的案例 valueAt(int)
中,對應至索引鍵的值會以遞增順序傳回。
的 android.util.SparseArray
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
SparseArray() |
建立不包含對應的新疏鬆Array。 |
SparseArray(Int32) |
建立新的SparseArray,其中包含不需要任何額外的記憶體配置來儲存指定數目的對應。 |
SparseArray(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
PeerReference |
|
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
Append(Int32, Object) |
將索引鍵/值組放入陣列中,針對索引鍵大於陣列中所有現有索引鍵的情況進行優化。 |
Clear() |
從這個疏鬆陣列中移除所有索引鍵/值對應。 |
Clone() |
建立並傳回這個 |
Contains(Int32) |
如果索引鍵存在於陣列中,則傳回 true。 |
ContentEquals(SparseArray) |
比較這個 |
ContentHashCode() |
傳回這個 |
Delete(Int32) |
如果有的話,從指定的索引鍵移除對應。 |
Dispose() |
|
Dispose(Boolean) |
|
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
Get(Int32) |
取得從指定索引鍵對應的物件,如果沒有進行這類對應, |
Get(Int32, Object) |
取得從指定索引鍵對應的物件,如果沒有進行這類對應,則取得指定的 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 <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</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) |
|