TreeSet Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализация NavigableSet
на TreeMap
основе .
[Android.Runtime.Register("java/util/TreeSet", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class TreeSet : Java.Util.AbstractSet, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.INavigableSet
[<Android.Runtime.Register("java/util/TreeSet", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type TreeSet = class
inherit AbstractSet
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface INavigableSet
interface ISortedSet
interface ISet
interface ICollection
interface IIterable
- Наследование
- Атрибуты
- Реализации
Комментарии
Реализация NavigableSet
на TreeMap
основе . Элементы упорядочены с помощью аналогичного естественного Comparator
упорядочения или предоставленным во время создания набора в зависимости от того, какой конструктор используется.
Эта реализация обеспечивает гарантированную стоимость времени log(n) для основных операций (add
remove
иcontains
).
Обратите внимание, что порядок, поддерживаемый набором (предоставляется ли явный компратор) должен быть согласован с равными, если это необходимо для правильной Set
реализации интерфейса. (См Comparable
. или Comparator
точное определение, согласованное с равными.) Это связано с тем, что Set
интерфейс определен с точки зрения equals
операции, но TreeSet
экземпляр выполняет все сравнения элементов с помощью его compareTo
метода (или compare
), поэтому два элемента, которые считаются равными этим методом, с точки зрения набора, равны. Поведение набора четко определяется , даже если его упорядочение не соответствует равным. Он просто не соответствует общему контракту Set
интерфейса.
<Обратите>внимание, что эта реализация не синхронизирована.</strong> , если несколько потоков обращаются к древовидному набору одновременно, а по крайней мере один из потоков изменяет набор, он должен быть синхронизирован внешне. Обычно это достигается путем синхронизации с некоторым объектом, который естественно инкапсулирует набор. Если такой объект не существует, набор должен быть "упакован" с помощью Collections#synchronizedSortedSet Collections.synchronizedSortedSet
метода. Это лучше всего сделать во время создания, чтобы предотвратить случайный несинхронизированный доступ к набору:
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
Итераторы, возвращаемые методом этого классаiterator
, завершаются сбоем: если набор изменяется в любое время после создания итератора, за исключением собственного remove
метода итератора, итератор вызовет ConcurrentModificationException
исключение. Таким образом, перед лицом параллельного изменения итератор завершается сбоем быстро и чисто, а не рискуя произвольным, недетерминированным поведением в будущем.
Обратите внимание, что поведение итератора не может быть гарантировано, как правило, невозможно сделать какие-либо жесткие гарантии в присутствии несинхронизированных одновременных изменений. Отработки отказа быстрой итерации создаются ConcurrentModificationException
на основе лучших усилий. Поэтому было бы неправильно написать программу, которая зависит от этого исключения для его правильности: поведение итераторов должно использоваться только для обнаружения ошибок.
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.2.
Документация по Java для java.util.TreeSet
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
TreeSet() |
Создает новый, пустой набор деревьев, отсортированный в соответствии с естественным упорядочением его элементов. |
TreeSet(ICollection) |
Создает новый набор дерева, содержащий элементы в указанной коллекции, отсортированный в соответствии с естественным упорядочением его элементов. |
TreeSet(IComparator) |
Создает новый, пустой набор деревьев, отсортированный в соответствии с указанным компратором. |
TreeSet(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
TreeSet(ISortedSet) |
Создает новый набор дерева, содержащий те же элементы и используя то же упорядочение, что и указанный отсортированный набор. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsEmpty |
Добавление (Унаследовано от AbstractCollection) |
JniIdentityHashCode |
Реализация |
JniPeerMembers |
Реализация |
PeerReference |
Реализация |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Add(Object) |
Добавление (Унаследовано от AbstractCollection) |
AddAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
Ceiling(Object) |
Добавлено в 1. |
Clear() |
Добавление (Унаследовано от AbstractCollection) |
Clone() |
Возвращает неглубокую копию этого |
Comparator() |
Возвращает компратор, используемый для сравнения элементов в этом |
Contains(Object) |
Добавление (Унаследовано от AbstractCollection) |
ContainsAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
DescendingIterator() |
Возвращает итератор по элементам в этом наборе в порядке убывания. |
DescendingSet() |
Возвращает представление обратного порядка элементов, содержащихся в этом наборе. |
Dispose() |
Реализация |
Dispose(Boolean) |
Реализация |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
First() |
Возвращает первый элемент в этом наборе. |
Floor(Object) |
Добавлено в 1. |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
HeadSet(Object) |
Реализация |
HeadSet(Object, Boolean) |
Реализация |
Higher(Object) |
Добавлено в 1. |
Iterator() |
Возвращает итератор по элементам в этом наборе в порядке возрастания. |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Last() |
Возвращает последний элемент в этом наборе. |
Lower(Object) |
Добавлено в 1. |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
PollFirst() |
Добавлено в 1. |
PollLast() |
Добавлено в 1. |
Remove(Object) |
Добавление (Унаследовано от AbstractCollection) |
RemoveAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
RetainAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Size() |
Возвращает количество элементов в этом наборе (его кратность). |
Spliterator() |
<Создает em>"Spliterator. |
SubSet(Object, Boolean, Object, Boolean) |
Реализация |
SubSet(Object, Object) |
Реализация |
TailSet(Object) |
Реализация |
TailSet(Object, Boolean) |
Реализация |
ToArray() |
Добавление (Унаследовано от AbstractCollection) |
ToArray(Object[]) |
Добавление (Унаследовано от AbstractCollection) |
ToArray<T>() |
Реализация |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Реализация |
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) |
Реализация |
ToEnumerable(IIterable) |
Реализация |
ToEnumerable<T>(IIterable) |
Реализация |