TreeMap Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализация на основе NavigableMap
красного черного дерева.
[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
красного черного дерева. Карта сортируется в соответствии с сопоставимым естественным упорядочением ключей или Comparator
предоставленным во время создания карты в зависимости от того, какой конструктор используется.
Эта реализация обеспечивает гарантированную стоимость времени log(n) для операций и операций containsKey
put
get
.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
на основе лучших усилий. Поэтому было бы неправильно написать программу, которая зависит от этого исключения для его правильности: <эм>поведение итераторов сбоем должно использоваться только для обнаружения ошибок.</эм>
Все Map.Entry
пары, возвращаемые методами в этом классе, и его представления представляют моментальные снимки сопоставлений во время их создания. Они не <><поддерживают>Entry.setValue
метод. (Обратите внимание, что можно изменить сопоставления в связанной карте с помощью put
.)
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.2.
Документация по Java для java.util.TreeMap
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
TreeMap() |
Создает новую пустую карту дерева, используя естественное упорядочение ключей. |
TreeMap(IComparator) |
Создает новую, пустую карту дерева, упорядоченную в соответствии с заданным компратором. |
TreeMap(IDictionary) |
Создает новую карту дерева, содержащую те же сопоставления, что и данная карта, упорядоченная в соответствии <>с упорядочением в соответствии с упорядочением< и> эмом его ключей. |
TreeMap(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsEmpty |
Добавление (Унаследовано от AbstractMap) |
JniIdentityHashCode |
Реализация на основе |
JniPeerMembers |
Реализация на основе |
PeerReference |
Реализация на основе |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
CeilingEntry(Object) |
Реализация на основе |
CeilingKey(Object) |
Добавлено в 1. |
Clear() |
Добавление (Унаследовано от AbstractMap) |
Clone() |
Возвращает неглубокую копию этого |
Comparator() |
Возвращает компратор, используемый для сравнения ключей в этой отсортированной карте, или значение NULL, если используется естественное упорядочение. |
ContainsKey(Object) |
Добавление (Унаследовано от AbstractMap) |
ContainsValue(Object) |
Добавление (Унаследовано от AbstractMap) |
DescendingKeySet() |
Добавлено в 1. |
DescendingMap() |
Добавлено в 1. |
Dispose() |
Реализация на основе |
Dispose(Boolean) |
Реализация на основе |
EntrySet() |
|
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
FirstEntry() |
Возвращает сопоставление "ключ-значение", связанное с наименьшим ключом в этой карте, или |
FirstKey() |
Возвращает наименьший ключ в этой отсортированной карте. |
FloorEntry(Object) |
Реализация на основе |
FloorKey(Object) |
Добавлено в 1. |
ForEach(IBiConsumer) |
Реализация на основе |
Get(Object) |
Добавление (Унаследовано от AbstractMap) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
HeadMap(Object) |
Реализация на основе |
HeadMap(Object, Boolean) |
Добавлено в 1. |
HigherEntry(Object) |
Реализация на основе |
HigherKey(Object) |
Добавлено в 1. |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
KeySet() |
Добавление (Унаследовано от AbstractMap) |
LastEntry() |
Возвращает сопоставление "ключ-значение", связанное с наибольшим ключом в этой карте, или |
LastKey() |
Возвращает наибольший ключ в этой отсортированной карте. |
LowerEntry(Object) |
Реализация на основе |
LowerKey(Object) |
Добавлено в 1. |
NavigableKeySet() |
Добавлено в 1. |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
PollFirstEntry() |
Удаляет и возвращает сопоставление "ключ-значение", связанное с наименьшим ключом в этой карте, или |
PollLastEntry() |
Удаляет и возвращает сопоставление "ключ-значение", связанное с наибольшим ключом в этой карте, или |
Put(Object, Object) |
Добавление (Унаследовано от AbstractMap) |
PutAll(IDictionary) |
Добавление (Унаследовано от AbstractMap) |
Remove(Object) |
Добавление (Унаследовано от AbstractMap) |
Replace(Object, Object) |
Реализация на основе |
Replace(Object, Object, Object) |
Реализация на основе |
ReplaceAll(IBiFunction) |
Реализация на основе |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Size() |
Добавление (Унаследовано от AbstractMap) |
SubMap(Object, Boolean, Object, Boolean) |
Добавлено в 1. |
SubMap(Object, Object) |
Реализация на основе |
TailMap(Object) |
Реализация на основе |
TailMap(Object, Boolean) |
Добавлено в 1. |
ToArray<T>() |
Реализация на основе |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Реализация на основе |
Values() |
Добавление (Унаследовано от AbstractMap) |
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) |
Реализация на основе |