TreeSet 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
基於 NavigableSetTreeMap. 的實作
[Android.Runtime.Register("java/util/TreeSet", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class TreeSet : Java.Util.AbstractSet, IDisposable, 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 ISequencedSet
interface ISequencedCollection
interface ICollection
interface IIterable
interface ISet
- 繼承
- 屬性
- 實作
備註
基於 NavigableSetTreeMap. 的實作 元素依據所使用的建構子,依其可比自然順序或在集合創建時提供的排序 Comparator 排序。
此實作為基本操作add(、 remove 和 contains)提供保證的 log(n) 時間成本。
請注意,集合所維持的排序(無論是否提供明確比較器)必須與等 值一致 ,才能正確實作介面 Set 。 (關於Comparable的精確定義,請參見 Comparator 或。)這是因為Set介面是以操作定義equals,但實TreeSet例會使用其compareTo(或compare)方法執行所有元素比較,因此從集合的角度來看,兩個被此方法視為相等的元素是相等的。 即使一個集合的排序與等值不一致,其行為 仍然是 良好定義的;它只是無法遵守介面的 Set 一般契約。
<強>請注意,此實作並非同步。</強> 如果多個執行緒同時存取一個樹狀組,且至少有一個執行緒修改了該組, 則必須 在外部同步。 這通常是透過在某個自然封裝該集合的物件上同步來達成。 若不存在此類物件,則應使用該 Collections#synchronizedSortedSet Collections.synchronizedSortedSet 方法「包裝」該集合。 此操作最好在建立時進行,以防止意外非同步存取集合:
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
此類別 iterator 方法回傳的迭代器是 失敗快速的:若在迭代器建立後的任何時間點修改集合,且非透過迭代器自身 remove 的方法,迭代器將拋出一個 ConcurrentModificationException。 因此,面對並行修改時,迭代器能迅速且乾淨地失敗,而非冒著未來某個未知時間出現任意且非確定性行為的風險。
請注意,迭代器的失效快速行為無法保證,因為一般而言,在存在非同步的並行修改時,無法做出任何硬性保證。 失效快速迭代器則是以盡力而為的方式投擲 ConcurrentModificationException 。 因此,撰寫依賴此例外來確保正確性的程式是錯誤的: 迭代器的快速失效行為應該只用來偵測錯誤。
#addFirst addFirst此類的 和 #addLast addLast 方法 擲出 UnsupportedOperationException。 元素的遭遇順序由比較方法決定;因此,不支援明確定位。
此類別是 Java 集合框架的成員。
在 1.2 版本中加入。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| TreeSet() |
構造一個新的空樹集合,依其元素的自然排序排序。 |
| TreeSet(ICollection) |
構造一個新的樹狀集合,包含指定集合中的元素,並依其 元素的自然排序 排序。 |
| TreeSet(IComparator) |
構造一個新的空樹集合,依據指定的比較器排序。 |
| TreeSet(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
| TreeSet(ISortedSet) |
構造一個包含相同元素且使用相同排序的新樹集合。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IsEmpty |
待補充 (繼承來源 AbstractCollection) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
基於 |
| JniPeerMembers |
基於 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| Add(Object) |
待補充 (繼承來源 AbstractCollection) |
| AddAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| AddFirst(Object) |
基於 |
| AddLast(Object) |
基於 |
| Ceiling(Object) |
新增 1. |
| Clear() |
待補充 (繼承來源 AbstractCollection) |
| Clone() |
回傳這個 |
| Comparator() |
回傳用於比較此 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
基於 |
| Contains(Object) |
待補充 (繼承來源 AbstractCollection) |
| ContainsAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| DescendingIterator() |
回傳一個對該集合元素的迭代器,按降序排列。 |
| DescendingSet() |
回傳此集合中元素的反序視圖。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
基於 |
| Equals(Object) |
基於 |
| 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
基於 |
| Size() |
回傳該集合中的元素數(其基數)。 |
| Spliterator() |
會產生 <一個 em>“分流器”。 |
| SubSet(Object, Boolean, Object, Boolean) |
基於 |
| SubSet(Object, Object) |
基於 |
| TailSet(Object, Boolean) |
基於 |
| TailSet(Object) |
基於 |
| ToArray() |
待補充 (繼承來源 AbstractCollection) |
| ToArray(Object[]) |
待補充 (繼承來源 AbstractCollection) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
基於 |
| IJavaPeerable.Finalized() |
基於 |
| IJavaPeerable.JniObjectReferenceControlBlock |
基於 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
基於 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
基於 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
基於 |
| IJavaPeerable.UnregisterFromRuntime() |
基於 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
基於 |
| ToEnumerable(IIterable) |
基於 |
| ToEnumerable<T>(IIterable) |
基於 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |