TreeMap Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализация на основе NavigableMap дерева Red-Black.
[Android.Runtime.Register("java/util/TreeMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class TreeMap : Java.Util.AbstractMap, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.INavigableMap
[<Android.Runtime.Register("java/util/TreeMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type TreeMap = class
inherit AbstractMap
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface INavigableMap
interface ISortedMap
interface IMap
interface ISequencedMap
- Наследование
- Атрибуты
- Реализации
Комментарии
Реализация на основе NavigableMap дерева Red-Black. Карта отсортирована в соответствии с сопоставимым естественным упорядочением ключей или Comparator предоставленным во время создания карты в зависимости от используемого конструктора.
Эта реализация обеспечивает гарантированную стоимость времени log(n) для операций и операций containsKeygetput.remove Алгоритмы — это адаптация тех, которые в Cormen, Leiserson и Rivest <em>Введение в алгоритмы</em>.
Обратите внимание, что порядок, поддерживаемый картой дерева, как любая отсортированная карта, и какой-либо явный компратор предоставляется, должен быть <согласован>с equals</em> , если эта отсортированная карта должна правильно реализовать Map интерфейс. (СмComparable. или Comparator точное определение em<, согласованное >с equals</em>.) Это так, потому что Map интерфейс определен с точки зрения equals операции, но отсортированная карта выполняет все сравнения ключей с помощью его compareTo метода (илиcompare), поэтому два ключа, которые считаются равными этим методом, с точки зрения отсортированных карт, равны. Поведение отсортированного карты <em>< /em> четко определено, даже если его упорядочение не соответствуетequals; он просто не соответствует общему контракту Map интерфейса.
<Обратите>внимание, что эта реализация не синхронизирована.</strong>, если несколько потоков одновременно обращаются к карте, и по крайней мере один из потоков изменяет схему структурно, она <должна> /em<> быть синхронизирована внешне. (Структурные изменения — это любая операция, которая добавляет или удаляет одно или несколько сопоставлений; просто изменение значения, связанного с существующим ключом, не является структурным изменением.) Обычно это достигается путем синхронизации с некоторым объектом, который естественно инкапсулирует карту. Если такой объект не существует, карта должна быть "упакована" с помощью Collections#synchronizedSortedMap Collections.synchronizedSortedMap метода. Это лучше всего сделать во время создания, чтобы предотвратить случайный несинхронизированный доступ к карте:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
Итераторы, возвращаемые методом iterator коллекций, возвращаемых всеми методами представления коллекции этого класса, являются <em>fail-fast/em<: если карта структурно> изменяется в любое время после создания итератора, в любом случае, за исключением собственного remove метода итератора, итератор вызовет ConcurrentModificationExceptionитератор. Таким образом, перед лицом параллельного изменения итератор завершается сбоем быстро и чисто, а не рискуя произвольным, недетерминированным поведением в будущем.
Обратите внимание, что поведение итератора не может быть гарантировано, как правило, невозможно сделать какие-либо жесткие гарантии в присутствии несинхронизированных одновременных изменений. Отработки отказа быстрой итерации создаются ConcurrentModificationException на основе лучших усилий. Поэтому было бы неправильно написать программу, которая зависит от этого исключения для его правильности: <эм>поведение итераторов сбоем должно использоваться только для обнаружения ошибок.</em>
Методы #ceilingEntry, #firstEntry, #floorEntry#higherEntry#lastEntry#lowerEntry#pollFirstEntry#pollLastEntry и возвращаемые Map.Entry экземпляры, представляющие моментальные снимки сопоставлений по состоянию на время вызова.
<
>Они не< поддерживают> мутацию базовой карты с помощью необязательного Map.Entry#setValue setValue метода.
#putFirst putFirst Вызов #putLast putLastUnsupportedOperationExceptionи методы этого класса. Порядок сопоставлений определяется методом сравнения; Таким образом, явное расположение не поддерживается.
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.2.
Java документации по java.util.TreeMap.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя | Описание |
|---|---|
| TreeMap() |
Создает новую пустую карту дерева, используя естественное упорядочение ключей. |
| TreeMap(IComparator) |
Создает новую, пустую карту дерева, упорядоченную в соответствии с заданным компратором. |
| TreeMap(IDictionary) |
Создает новую карту дерева, содержащую те же сопоставления, что и данная карта, упорядоченная в соответствии <>с упорядочением в соответствии с упорядочением< и> эмом его ключей. |
| TreeMap(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsEmpty |
Добавление (Унаследовано от AbstractMap) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Реализация на основе |
| JniPeerMembers |
Реализация на основе |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя | Описание |
|---|---|
| CeilingEntry(Object) |
Реализация на основе |
| CeilingKey(Object) |
Добавлено в 1. |
| Clear() |
Добавление (Унаследовано от AbstractMap) |
| Clone() |
Возвращает неглубокую копию этого |
| Comparator() |
Возвращает компратор, используемый для сравнения ключей в этой отсортированной карте, или значение NULL, если используется естественное упорядочение. |
| Compute(Object, IBiFunction) |
Реализация на основе |
| ComputeIfAbsent(Object, IFunction) |
Реализация на основе |
| ComputeIfPresent(Object, IBiFunction) |
Реализация на основе |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Реализация на основе |
| ContainsKey(Object) |
Добавление (Унаследовано от AbstractMap) |
| ContainsValue(Object) |
Добавление (Унаследовано от AbstractMap) |
| DescendingKeySet() |
Добавлено в 1. |
| DescendingMap() |
Добавлено в 1. |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Реализация на основе |
| EntrySet() |
|
| Equals(Object) |
Реализация на основе |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| FirstEntry() |
Возвращает сопоставление "ключ-значение", связанное с наименьшим ключом в этой карте, или |
| FirstKey() |
Возвращает наименьший ключ в этой отсортированной карте. |
| FloorEntry(Object) |
Реализация на основе |
| FloorKey(Object) |
Добавлено в 1. |
| ForEach(IBiConsumer) |
Реализация на основе |
| Get(Object) |
Добавление (Унаследовано от AbstractMap) |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| HeadMap(Object, Boolean) |
Добавлено в 1. |
| HeadMap(Object) |
Реализация на основе |
| HigherEntry(Object) |
Реализация на основе |
| HigherKey(Object) |
Добавлено в 1. |
| JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| KeySet() |
Добавление (Унаследовано от AbstractMap) |
| LastEntry() |
Возвращает сопоставление "ключ-значение", связанное с наибольшим ключом в этой карте, или |
| LastKey() |
Возвращает наибольший ключ в этой отсортированной карте. |
| LowerEntry(Object) |
Реализация на основе |
| LowerKey(Object) |
Добавлено в 1. |
| Merge(Object, Object, IBiFunction) |
Реализация на основе |
| NavigableKeySet() |
Добавлено в 1. |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| PollFirstEntry() |
Удаляет и возвращает сопоставление "ключ-значение", связанное с наименьшим ключом в этой карте, или |
| PollLastEntry() |
Удаляет и возвращает сопоставление "ключ-значение", связанное с наибольшим ключом в этой карте, или |
| Put(Object, Object) |
Добавление (Унаследовано от AbstractMap) |
| PutAll(IDictionary) |
Добавление (Унаследовано от AbstractMap) |
| PutFirst(Object, Object) |
Бросает |
| PutIfAbsent(Object, Object) |
Реализация на основе |
| PutLast(Object, Object) |
Бросает |
| Remove(Object) |
Добавление (Унаследовано от AbstractMap) |
| Replace(Object, Object, Object) |
Реализация на основе |
| Replace(Object, Object) |
Реализация на основе |
| ReplaceAll(IBiFunction) |
Реализация на основе |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Реализация на основе |
| Size() |
Добавление (Унаследовано от AbstractMap) |
| SubMap(Object, Boolean, Object, Boolean) |
Добавлено в 1. |
| SubMap(Object, Object) |
Реализация на основе |
| TailMap(Object, Boolean) |
Добавлено в 1. |
| TailMap(Object) |
Реализация на основе |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Values() |
Добавление (Унаследовано от AbstractMap) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Реализация на основе |
| IJavaPeerable.Finalized() |
Реализация на основе |
| IJavaPeerable.JniObjectReferenceControlBlock |
Реализация на основе |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Реализация на основе |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Реализация на основе |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Реализация на основе |
| IJavaPeerable.UnregisterFromRuntime() |
Реализация на основе |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Реализация на основе |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |