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) 方法來執行所有元素比較,因此,從 set 的觀點來看,這個方法視為相等的兩個TreeSet元素都是相等的。 即使集合的排序與相等不一致,集合的行為也是妥善定義的;它只是無法遵守介面的Set一般合約。
<強>請注意,此實作不會同步處理。</strong> 如果多個線程同時存取樹狀目錄集,而且至少有一個線程修改集合,則必須在外部同步處理。 這通常是透過同步處理自然封裝集合的某些物件來完成。 如果不存在這類物件,則集合應該使用 Collections#synchronizedSortedSet Collections.synchronizedSortedSet 方法「包裝」。 這最好是在建立時完成,以避免意外對集合進行未同步存取:
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
這個類別的 方法所傳回的 iterator 反覆運算器是 失敗的:如果在建立反覆運算器之後任何時間修改集合,則除了透過反覆運算器自己的 remove 方法以外,反覆運算器會擲回 ConcurrentModificationException。 因此,面對並行修改,反覆運算器會快速且乾淨地失敗,而不是在未來不確定的時間冒著任意、不具決定性的行為的風險。
請注意,Iterator 的失敗快速行為無法保證,一般來說,不可能在未同步處理並行修改的情況下進行任何硬式保證。 快速反覆運算器會盡最大努力擲回 ConcurrentModificationException 。 因此,撰寫依賴此例外狀況的程序正確性是錯誤的: Iterator 的失敗快速行為應該只用來偵測 Bug。
這個類別是 Java Collections Framework 的成員。
已在1.2中新增。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| TreeSet() |
根據其元素的自然順序來建構新的空白樹狀結構集。 |
| TreeSet(ICollection) |
建構新的樹狀結構集,其中包含指定集合中的專案,根據 其專案的自然順序 排序。 |
| TreeSet(IComparator) |
根據指定的比較子來建構新的空白樹狀結構集。 |
| TreeSet(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
| TreeSet(ISortedSet) |
建構包含相同元素的新樹狀結構集,並使用與指定排序集相同的順序。 |
屬性
| Class |
傳回這個 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| IsEmpty |
要新增 (繼承來源 AbstractCollection) |
| JniIdentityHashCode |
|
| JniPeerMembers |
|
| PeerReference |
|
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| 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 <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</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) |
|