TreeMap 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個 Red-Black 樹狀 NavigableMap 實作。
[Android.Runtime.Register("java/util/TreeMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class TreeMap : Java.Util.AbstractMap, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.INavigableMap
[<Android.Runtime.Register("java/util/TreeMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type TreeMap = class
inherit AbstractMap
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface INavigableMap
interface ISortedMap
interface IMap
interface ISequencedMap
- 繼承
- 屬性
- 實作
備註
一個 Red-Black 樹狀 NavigableMap 實作。 映射依照鍵的可比自然排序排序,或依據所使用的建構器,在建立映射時依 Comparator 據所提供的排序方式排序。
此實作為 、 containsKey、 及getput操作提供保證的 log(n) 時間成本remove。 演算法是 Cormen、Leiserson 和 Rivest <的《Introduction>to Algorithms</em>》中的演算法的改編。
請注意,樹狀映射所維持的排序,如同任何有序映射,以及是否提供明確比較器,必須與 </>emequals 一致<>,才能正確實作Map此排序映射。 (關於與等Comparable值/emComparator 一致的 <em>的精確定義,請參見 < or>。)這是因為Map介面是以操作定義equals的,但排序映射會使用其compareTo(或compare)方法執行所有鍵比較,因此從排序映射的角度來看,兩個被此方法視為相同的鍵是相等的。 排序映射 <em>的行為是<>良好定義的,即使其排序與 不一致equals;它只是無法遵守介面的Map一般契約。
<強>請注意,此實作並非同步。</強> 如果多個執行緒同時存取一個映射,且至少有一個執行緒結構性修改了映射,則<>必須</外部>同步。 (結構修改是指任何新增或刪除一個或多個映射的操作;僅僅改變與現有金鑰相關的值,並不構成結構性修改。)這通常是透過在自然封裝地圖的物件上同步來達成。 若不存在此類物件,則應使用該 Collections#synchronizedSortedMap Collections.synchronizedSortedMap 方法「包裹」映射。 這最好在建立時進行,以避免不同步地存取地圖:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
所有本類別「集合檢視方法」所回傳的集合中,遞換器會回傳 iterator em<fail-fast>/em<:如果在迭代器建立後的任何時間對映射結構進行修改,除非透過迭代器自身>的方法,迭代器會拋出 remove。ConcurrentModificationException 因此,面對並行修改時,迭代器能迅速且乾淨地失敗,而非冒著未來某個未知時間出現任意且非確定性行為的風險。
請注意,迭代器的失效快速行為無法保證,因為一般而言,在存在非同步的並行修改時,無法做出任何硬性保證。 失效快速迭代器則是以盡力而為的方式投擲 ConcurrentModificationException 。 因此,撰寫依賴此例外來判斷正確性的程式是錯誤的: <迭>代器的快速失敗行為應僅用於偵測錯誤。</em>
方法#ceilingEntry、#firstEntry、#floorEntry、#higherEntry#lastEntry#lowerEntry#pollFirstEntry#pollLastEntry回傳Map.Entry代表呼叫時映射快照的實例。 他們做 <em>not</em> 支持透過可選 Map.Entry#setValue setValue 方法突變底層映射。
#putFirst putFirst此類的 和 #putLast putLast 方法 擲出 UnsupportedOperationException。 映射的遭遇順序由比較方法決定;因此,不支援明確定位。
此類別是 Java 集合框架的成員。
在 1.2 版本中加入。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| TreeMap() |
利用鍵的自然排序,構造一個新的空樹狀映射。 |
| TreeMap(IComparator) |
構造一個新的空樹狀映射,依據給定比較器排序。 |
| TreeMap(IDictionary) |
構造一個新的樹狀映射,包含與該映射相同的映射,並依照其鍵的 em<自然排序>/em< 排序>。 |
| TreeMap(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IsEmpty |
待補充 (繼承來源 AbstractMap) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一個 Red-Black 樹狀 |
| JniPeerMembers |
一個 Red-Black 樹狀 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| 名稱 | Description |
|---|---|
| CeilingEntry(Object) |
一個 Red-Black 樹狀 |
| CeilingKey(Object) |
新增 1. |
| Clear() |
待補充 (繼承來源 AbstractMap) |
| Clone() |
回傳這個 |
| Comparator() |
回傳用於比較此排序映射鍵的比較器,若使用自然排序則回傳 null。 |
| Compute(Object, IBiFunction) |
一個 Red-Black 樹狀 |
| ComputeIfAbsent(Object, IFunction) |
一個 Red-Black 樹狀 |
| ComputeIfPresent(Object, IBiFunction) |
一個 Red-Black 樹狀 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
一個 Red-Black 樹狀 |
| ContainsKey(Object) |
待補充 (繼承來源 AbstractMap) |
| ContainsValue(Object) |
待補充 (繼承來源 AbstractMap) |
| DescendingKeySet() |
新增 1. |
| DescendingMap() |
新增 1. |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一個 Red-Black 樹狀 |
| EntrySet() |
回傳 |
| Equals(Object) |
一個 Red-Black 樹狀 |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| FirstEntry() |
回傳與該映射中最小鍵相關聯的鍵值映射,或 |
| FirstKey() |
返回此排序映射中最小的鍵。 |
| FloorEntry(Object) |
一個 Red-Black 樹狀 |
| FloorKey(Object) |
新增 1. |
| ForEach(IBiConsumer) |
一個 Red-Black 樹狀 |
| Get(Object) |
待補充 (繼承來源 AbstractMap) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| HeadMap(Object, Boolean) |
新增 1. |
| HeadMap(Object) |
一個 Red-Black 樹狀 |
| HigherEntry(Object) |
一個 Red-Black 樹狀 |
| HigherKey(Object) |
新增 1. |
| JavaFinalize() |
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| KeySet() |
待補充 (繼承來源 AbstractMap) |
| LastEntry() |
回傳與該映射中最大鍵相關聯的鍵值映射,或 |
| LastKey() |
返回此排序映射中最大鍵。 |
| LowerEntry(Object) |
一個 Red-Black 樹狀 |
| LowerKey(Object) |
新增 1. |
| Merge(Object, Object, IBiFunction) |
一個 Red-Black 樹狀 |
| NavigableKeySet() |
新增 1. |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| PollFirstEntry() |
移除並回傳與該映射中最小鍵相關聯的鍵值映射,或 |
| PollLastEntry() |
移除並回傳與該映射中最大鍵相關聯的鍵值映射,或 |
| Put(Object, Object) |
待補充 (繼承來源 AbstractMap) |
| PutAll(IDictionary) |
待補充 (繼承來源 AbstractMap) |
| PutFirst(Object, Object) |
拋出 |
| PutIfAbsent(Object, Object) |
一個 Red-Black 樹狀 |
| PutLast(Object, Object) |
拋出 |
| Remove(Object) |
待補充 (繼承來源 AbstractMap) |
| Replace(Object, Object, Object) |
一個 Red-Black 樹狀 |
| Replace(Object, Object) |
一個 Red-Black 樹狀 |
| ReplaceAll(IBiFunction) |
一個 Red-Black 樹狀 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一個 Red-Black 樹狀 |
| Size() |
待補充 (繼承來源 AbstractMap) |
| SubMap(Object, Boolean, Object, Boolean) |
新增 1. |
| SubMap(Object, Object) |
一個 Red-Black 樹狀 |
| TailMap(Object, Boolean) |
新增 1. |
| TailMap(Object) |
一個 Red-Black 樹狀 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Values() |
待補充 (繼承來源 AbstractMap) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
一個 Red-Black 樹狀 |
| IJavaPeerable.Finalized() |
一個 Red-Black 樹狀 |
| IJavaPeerable.JniObjectReferenceControlBlock |
一個 Red-Black 樹狀 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
一個 Red-Black 樹狀 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一個 Red-Black 樹狀 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
一個 Red-Black 樹狀 |
| IJavaPeerable.UnregisterFromRuntime() |
一個 Red-Black 樹狀 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個 Red-Black 樹狀 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |