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
设置创建时提供,具体取决于使用哪个构造函数。
此实现为基本操作(add
remove
和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.TreeSet
Java 文档
本页的某些部分是根据 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) |
|