ISortedMap 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
Map A則進一步在其鍵上提供<em>total ordering</em>。
[Android.Runtime.Register("java/util/SortedMap", "", "Java.Util.ISortedMapInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public interface ISortedMap : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ISequencedMap
[<Android.Runtime.Register("java/util/SortedMap", "", "Java.Util.ISortedMapInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type ISortedMap = interface
interface IMap
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ISequencedMap
- 衍生
- 屬性
- 實作
備註
Map A則進一步在其鍵上提供<em>total ordering</em>。 映射依照其鍵的可比自然排序排序,或通常在排序後建立映射時提供的排序 Comparator 。 當對已排序地圖的集合視圖(由 entrySet、 keySet 和 values 方法回傳)時,此順序會反映出來。 還提供多項額外操作以利用此排序。 (此介面是 的 SortedSet映射對應。)
所有插入排序映射的鍵都必須實作該 Comparable 介面(或被指定的比較器接受)。 此外,所有此類鍵必須是 em 互比較</em>: < (或 >)不得對任何鍵 k1.compareTo(k2) 和 comparator.compare(k1, k2) 在排序映射中拋出 aClassCastException。k1k2 違反此限制的嘗試將使違規方法或建構子調用拋出 ClassCastException。
請注意,排序映射所維持的排序(無論是否提供明確比較器)必須與 <>equals</em> 相容,若排序映射要正確實作介面Map。 (詳見介面或ComparableComparator介面,以 equals</em> 為 em 的精確定義<>。)這是因為Map介面是以操作定義equals的,但排序映射會使用其compareTo(或compare)方法執行所有鍵比較,因此從排序映射的角度來看,兩個被此方法視為相同的鍵是相等的。 樹狀映射 <em>的行為是<>定義良好的,即使其排序與等值不一致;它只是無法遵守介面的Map一般契約。
所有通用排序地圖實作類別都應提供四個「標準」建構子。 然而,無法強制執行此建議,因為所需的建構子無法由介面指定。 所有排序映射實作的預期「標準」建構器有:<ol><li>一個空置(無參數)建構器,它會根據鍵的自然排序建立一個空的排序映射。</li><li>一個具有單一參數型別Comparator的構造子,能根據指定的比較器建立一個空的排序映射。</li><li>一個擁有單一參數型別 Map的建構子,能建立一個與其參數相同的鍵值映射,並依鍵的自然排序建立一個新的映射。</li><li>一個具有單一參數SortedMap的建構子,該參數與輸入排序映射相同,建立一個新的排序映射,其鍵值映射與排序相同。</li></ol>
<強力>備註</強力>:多種方法會回傳具有限制調性範圍的子映射。 此類範圍為 <em-half-open></em>,也就是說,它們包含低端點但不含高端點(如適用)。 如果你需要一個 <em>封閉範圍</em> (包含兩個端點),且該鍵型允許計算某鍵的後繼,只需請求從 lowEndpoint 到 successor(highEndpoint)的子範圍。 例如,假設 m 是一個鍵為字串的映射。 以下慣用語可獲得包含所有 m 鍵值映射的視圖,其中鍵值介於 lowhigh和 之間,包括:
SortedMap<String, V> sub = m.subMap(low, high+"\0");
類似的技術可用來產生 <一個 em>開放範圍</em> (同時不包含任何端點)。 以下慣用語可獲得一個視圖,包含 m 所有鍵值映射中鍵值介於 lowhigh與 之間,且是獨佔:
SortedMap<String, V> sub = m.subMap(low+"\0", high);
此介面是 Java 集合框架的成員。
在 1.2 版本中加入。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsEmpty |
回傳此映射是否為空。 (繼承來源 IMap) |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
|
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Clear() |
移除此映射中的所有映射(可選操作)。 (繼承來源 IMap) |
| Comparator() |
回傳用於排序此映射中鍵鍵的比較器,或 |
| Compute(Object, IBiFunction) |
嘗試計算指定鍵及其目前映射值的映射,或 |
| ComputeIfAbsent(Object, IFunction) |
若指定的鍵尚未與某值相關聯(或映射至 |
| ComputeIfPresent(Object, IBiFunction) |
若指定鍵值存在且非空值,則嘗試根據該鍵及其當前映射值計算新的映射(可選操作)。 (繼承來源 IMap) |
| ContainsKey(Object) |
若此映射包含指定鍵的映射,則回傳 |
| ContainsValue(Object) |
若此映射將一個或多個鍵對應到指定值,則回傳 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| EntrySet() |
回傳 |
| Equals(Object) |
將指定物件與此映射比較以求相等。 (繼承來源 IMap) |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| FirstEntry() |
|
| FirstKey() |
回傳此地圖目前第一個(最低)鍵。 |
| ForEach(IBiConsumer) |
對該映射中的每個項目執行指定動作,直到所有項目都處理完畢或該動作拋出例外。 (繼承來源 IMap) |
| Get(Object) |
回傳指定金鑰所映射的值,或 |
| GetHashCode() |
回傳此映射的雜湊碼值。 (繼承來源 IMap) |
| GetOrDefault(Object, Object) |
回傳指定金鑰所映射的值,或 |
| HeadMap(Object) |
回傳該映射中鍵數嚴格小於 |
| KeySet() |
回傳 |
| LastEntry() |
|
| LastKey() |
回傳目前該地圖中最後(最高)的鍵。 |
| Merge(Object, Object, IBiFunction) |
如果指定的鍵尚未與某值相關聯或與空值相關聯,則會將其與給定的非空值關聯(可選操作)。 (繼承來源 IMap) |
| PollFirstEntry() |
|
| PollLastEntry() |
|
| Put(Object, Object) |
將指定值與此映射中的指定鍵鍵關聯(可選操作)。 (繼承來源 IMap) |
| PutAll(IDictionary) |
將指定映射中的所有映射複製到該映射(可選操作)。 (繼承來源 IMap) |
| PutFirst(Object, Object) |
若該映射尚未存在,則插入該映射;若映射已存在,則替換該映射值(可選操作)。 (繼承來源 ISequencedMap) |
| PutIfAbsent(Object, Object) |
如果指定的鍵尚未與某值相關聯(或映射到 |
| PutLast(Object, Object) |
若該映射尚未存在,則插入該映射;若映射已存在,則替換該映射值(可選操作)。 (繼承來源 ISequencedMap) |
| Remove(Object, Object) |
只有當指定鍵目前已映射到指定值時,才會移除該欄位(可選操作)。 (繼承來源 IMap) |
| Remove(Object) |
若該映射存在,則移除該映射(可選操作)。 (繼承來源 IMap) |
| Replace(Object, Object, Object) |
只有當指定鍵目前映射到指定值時,才會替換該指定鍵的條目(可選操作)。 (繼承來源 IMap) |
| Replace(Object, Object) |
只有當指定鍵目前映射到某個值時,才會替換該金鑰的條目(可選操作)。 (繼承來源 IMap) |
| ReplaceAll(IBiFunction) |
將每個項目的值替換為呼叫該該項目的結果,直到所有項目都處理完畢或該函式拋出例外(可選操作)。 (繼承來源 IMap) |
| Reversed() |
回傳此映射的反序視圖。 (繼承來源 ISequencedMap) |
| SequencedEntrySet() |
回傳 |
| SequencedKeySet() |
回傳 |
| SequencedValues() |
回傳 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
|
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| Size() |
回傳此映射中鍵值映射的數量。 (繼承來源 IMap) |
| SubMap(Object, Object) |
回傳該映射中鍵值範圍從 |
| TailMap(Object) |
回傳該映射中鍵值大於 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
| Values() |
回傳 |
明確介面實作
| 名稱 | Description |
|---|---|
| ISequencedMap.PutFirst(Object, Object) |
拋出 |
| ISequencedMap.PutLast(Object, Object) |
拋出 |
| ISequencedMap.Reversed() |
|
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |