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
предназначено для повышения эффективности памяти, чем <c>HashMap</c>, так как он избегает автоматического бокса ключей и его структуры данных не зависит от дополнительного объекта записи для каждого сопоставления.
Обратите внимание, что этот контейнер сохраняет сопоставления в структуре данных массива, используя двоичный поиск для поиска ключей. Реализация не предназначена для структур данных, которые могут содержать большое количество элементов. Обычно это медленнее HashMap
, чем поиск, так как для подстановок требуется двоичный поиск, а также добавляется и удаляется требуется вставка и удаление записей в массиве. Для контейнеров, содержащих до сотен элементов, разница в производительности составляет менее 50 %.
Чтобы помочь с производительностью, контейнер включает оптимизацию при удалении ключей: вместо немедленного сжатия массива он оставляет удаленную запись помеченной как удаленная. Затем запись можно повторно использовать для одного ключа или сжатия позже в одной сборке мусора всех удаленных записей. Эта сборка мусора должна выполняться всякий раз, когда массив должен быть выравлен или когда извлекаются значения размера карты или записи.
Можно выполнить итерацию элементов в этом контейнере с помощью #keyAt(int)
и #valueAt(int)
. Итерация ключей keyAt(int)
с возрастающими значениями индекса возвращает ключи в порядке возрастания. В случае valueAt(int)
, если значения, соответствующие ключам, возвращаются в порядке возрастания.
Документация по Java для android.util.SparseArray
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
SparseArray() |
Создает новый sparseArray, содержащий никакие сопоставления. |
SparseArray(Int32) |
Создает новый sparseArray, содержащий никакие сопоставления, которые не требуют дополнительного выделения памяти для хранения указанного количества сопоставлений. |
SparseArray(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
PeerReference |
|
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Append(Int32, Object) |
Помещает пару "ключ-значение" в массив, оптимизированную для случая, когда ключ больше всех существующих ключей в массиве. |
Clear() |
Удаляет все сопоставления "ключ-значение" из этого sparseArray. |
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) |
Псевдоним для |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
SetValueAt(Int32, Object) |
Учитывая индекс в диапазоне |
Size() |
Возвращает количество сопоставлений "ключ-значение", которые в настоящее время хранятся в этом sparseArray. |
ToArray<T>() |
|
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
|
ValueAt(Int32) |
Учитывая индекс в диапазоне |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>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) |
|