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
, get
put
и 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 |
Возвращает класс среды выполнения данного объекта |
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>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> 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) |
Реализация на основе |