TreeSet 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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 设置创建时提供,具体取决于使用哪个构造函数。
此实现为基本操作(addremove和contains)提供了有保证的 log(n) 时间成本。
请注意,一组维护的排序(是否提供显式比较器)在正确实现Set接口时必须与相等一致。 (请参阅Comparable或Comparator了解与相等的精确定义。这是因为Set接口在操作方面equals进行了定义,但实例使用其 compareTo (或compare) 方法执行所有元素比较,因此此方法认为相等的两个TreeSet元素从集的角度相等。 即使集的排序与相等不一致,集的行为也定义良好;它只是不服从接口的Set一般协定。
<强>请注意,此实现未同步。</strong> 如果多个线程同时访问树集,并且至少一个线程修改集, 则必须 在外部同步它。 这通常是通过在自然封装集的某些对象上进行同步来实现的。 如果不存在此类对象,则应使用 Collections#synchronizedSortedSet Collections.synchronizedSortedSet 该方法“包装”集。 最好在创建时执行此操作,以防止意外的未同步访问集:
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
此类方法返回的iterator迭代器是快速的:如果在创建迭代器后随时修改集,则迭代器将引发一个ConcurrentModificationException迭代器remove。 因此,面对并发修改,迭代器会在将来不确定的时间快速、干净地失败,而不是冒着任意的不确定行为的风险。
请注意,迭代器的故障快速行为无法保证,一般来说,在出现非同步并发修改时,无法做出任何硬保证。 故障快速迭代器会尽力引发 ConcurrentModificationException 。 因此,编写依赖于此异常的程序的正确性是错误的: 迭代器的故障快速行为应仅用于检测 bug。
此类是 Java 集合框架的成员。
已在 1.2 中添加。
适用于 . 的 java.util.TreeSetJava 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
| TreeSet() |
构造一个新的空树集,根据其元素的自然顺序进行排序。 |
| TreeSet(ICollection) |
构造一个新树集,其中包含指定集合中的元素,根据 元素的自然顺序 进行排序。 |
| TreeSet(IComparator) |
构造一个新的空树集,根据指定的比较器进行排序。 |
| TreeSet(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
| TreeSet(ISortedSet) |
构造包含相同元素的新树集,并使用与指定的排序集相同的排序。 |
属性
| Class |
返回此 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| IsEmpty |
要添加 (继承自 AbstractCollection) |
| JniIdentityHashCode |
|
| JniPeerMembers |
|
| PeerReference |
|
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for 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, Boolean) |
|
| HeadSet(Object) |
|
| 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, Boolean) |
|
| TailSet(Object) |
|
| ToArray() |
要添加 (继承自 AbstractCollection) |
| ToArray(Object[]) |
要添加 (继承自 AbstractCollection) |
| ToArray<T>() |
|
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
|
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</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) |
|