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.Interop.IJavaPeerable, 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
Наследование
Атрибуты
Реализации

Комментарии

Реализация на основе NavigableMap дерева Red-Black. Карта отсортирована в соответствии с естественным упорядочением ключей или по объекту Comparator , предоставленному во время создания карты, в зависимости от используемого конструктора.

Эта реализация обеспечивает гарантированные затраты времени log(n) для операций containsKey, getput и remove . Алгоритмы — это адаптации тех из корменов, Лейзерсон и rivest's <em>Introduction to Algorithms</em>.

Обратите внимание, что порядок, поддерживаемый древовидной картой, как и любая отсортированная карта, и независимо от того, предоставляется ли явный компаратор, должен быть <>согласован с<equals /em>, если эта отсортированная карта должна правильно реализовать Map интерфейс. (См. Comparable или Comparator для получения точного определения em>, согласующегося <с equals</em>.) Это связано с тем, что Map интерфейс определяется с точки зрения equals операции, но отсортированная карта выполняет все сравнения ключей с помощью своего compareTo метода (или compare), поэтому два ключа, которые считаются равными этим методом, с точки зрения отсортированного сопоставления, равны. Поведение отсортированного эм-карты><< хорошо определено,> даже если его порядок не согласуется с equals; он просто не подчиняется общему контракту Map интерфейса.

<strong>Обратите внимание, что эта реализация не синхронизирована.</strong> Если несколько потоков обращаются к карте одновременно и хотя бы один из потоков изменяет карту структурно, она <>должна<> быть синхронизирована извне. (Структурное изменение — это любая операция, которая добавляет или удаляет одно или несколько сопоставлений. Простое изменение значения, связанного с существующим ключом, не является структурным изменением.) Обычно это достигается путем синхронизации с каким-то объектом, который естественным образом инкапсулирует карту. Если такого объекта нет, карта должна быть "упакована" с помощью Collections#synchronizedSortedMap Collections.synchronizedSortedMap метода . Это лучше всего делать во время создания, чтобы предотвратить случайный несинхронизированный доступ к карте:

SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));

Итераторы, возвращаемые методом iterator коллекций, возвращаемых всеми методами представления коллекции этого класса, являются <em>fail-fast</em>: если сопоставление будет структурно изменено в любое время после создания итератора, любым способом, кроме метода собственного remove итератора, итератор вызовет ConcurrentModificationExceptionисключение . Таким образом, при одновременном изменении итератор завершает работу быстро и чисто, вместо того, чтобы рисковать произвольным, недетерминированным поведением в неопределенное время в будущем.

Обратите внимание, что быстрое поведение итератора не может быть гарантировано, так как в целом невозможно сделать какие-либо жесткие гарантии при наличии несинхронизированного параллельного изменения. Быстрые итераторы создаются ConcurrentModificationException на основе наилучших усилий. Поэтому было бы неправильно писать программу, которая зависит от этого исключения из-за его правильности: <em>быстрое поведение итераторов должно использоваться только для обнаружения ошибок.</Em>

Все Map.Entry пары, возвращаемые методами в этом классе и его представлениями, представляют моментальные снимки сопоставлений на момент их создания. Они не <>><поддерживают Entry.setValue метод . (Однако обратите внимание, что сопоставления в связанной карте можно изменить с помощью put.)

Этот класс является членом Платформы коллекций Java.

Добавлено в версии 1.2.

Документация по Java для java.util.TreeMap.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

TreeMap()

Создает новую пустую карту дерева, используя естественное упорядочение ключей.

TreeMap(IComparator)

Создает новую пустую карту дерева, упорядоченную в соответствии с данным компаратором.

TreeMap(IDictionary)

Создает новую древовидную карту, содержащую те же сопоставления, что и данная карта, упорядоченная в соответствии с <>естественным порядком< em/em> ее ключей.

TreeMap(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsEmpty

Добавление

(Унаследовано от AbstractMap)
JniIdentityHashCode

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
JniPeerMembers

Реализация на основе NavigableMap дерева Red-Black.

PeerReference

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

CeilingEntry(Object)

Реализация на основе NavigableMap дерева Red-Black.

CeilingKey(Object)

Добавлено в 1.

Clear()

Добавление

(Унаследовано от AbstractMap)
Clone()

Возвращает неглубокую копию этого TreeMap экземпляра.

Comparator()

Возвращает компаратор, используемый для сравнения ключей в этой отсортированной карте, или значение NULL, если используется естественное упорядочение.

ContainsKey(Object)

Добавление

(Унаследовано от AbstractMap)
ContainsValue(Object)

Добавление

(Унаследовано от AbstractMap)
DescendingKeySet()

Добавлено в 1.

DescendingMap()

Добавлено в 1.

Dispose()

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
Dispose(Boolean)

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
EntrySet()

Set Возвращает представление сопоставлений, содержащихся в этой карте.

Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
FirstEntry()

Возвращает сопоставление "ключ-значение", связанное с наименьшим ключом в этой карте, или null значение, если карта пуста.

FirstKey()

Возвращает наименьший ключ в этой отсортированной карте.

FloorEntry(Object)

Реализация на основе NavigableMap дерева Red-Black.

FloorKey(Object)

Добавлено в 1.

ForEach(IBiConsumer)

Реализация на основе NavigableMap дерева Red-Black.

Get(Object)

Добавление

(Унаследовано от AbstractMap)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
HeadMap(Object)

Реализация на основе NavigableMap дерева Red-Black.

HeadMap(Object, Boolean)

Добавлено в 1.

HigherEntry(Object)

Реализация на основе NavigableMap дерева Red-Black.

HigherKey(Object)

Добавлено в 1.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
KeySet()

Добавление

(Унаследовано от AbstractMap)
LastEntry()

Возвращает сопоставление "ключ-значение", связанное с наибольшим ключом на этой карте, или null значение, если карта пуста.

LastKey()

Возвращает наибольший ключ в этой отсортированной карте.

LowerEntry(Object)

Реализация на основе NavigableMap дерева Red-Black.

LowerKey(Object)

Добавлено в 1.

NavigableKeySet()

Добавлено в 1.

Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
PollFirstEntry()

Удаляет и возвращает сопоставление "ключ-значение", связанное с наименьшим ключом в этой карте или null если карта пуста.

PollLastEntry()

Удаляет и возвращает сопоставление "ключ-значение", связанное с наибольшим ключом на этой карте, или null , если карта пуста.

Put(Object, Object)

Добавление

(Унаследовано от AbstractMap)
PutAll(IDictionary)

Добавление

(Унаследовано от AbstractMap)
Remove(Object)

Добавление

(Унаследовано от AbstractMap)
Replace(Object, Object)

Реализация на основе NavigableMap дерева Red-Black.

Replace(Object, Object, Object)

Реализация на основе NavigableMap дерева Red-Black.

ReplaceAll(IBiFunction)

Реализация на основе NavigableMap дерева Red-Black.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
Size()

Добавление

(Унаследовано от AbstractMap)
SubMap(Object, Boolean, Object, Boolean)

Добавлено в 1.

SubMap(Object, Object)

Реализация на основе NavigableMap дерева Red-Black.

TailMap(Object)

Реализация на основе NavigableMap дерева Red-Black.

TailMap(Object, Boolean)

Добавлено в 1.

ToArray<T>()

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
Values()

Добавление

(Унаследовано от AbstractMap)
Wait()

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

(Унаследовано от Object)
Wait(Int64)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Реализация на основе NavigableMap дерева Red-Black.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Реализация на основе NavigableMap дерева Red-Black.

GetJniTypeName(IJavaPeerable)

Реализация на основе NavigableMap дерева Red-Black.

Применяется к