語言

Collections.SynchronizedSortedMap(IDictionary) 方法

定義

回傳一個同步(執行緒安全)的排序映射,並由指定的排序映射作為後盾。

[Android.Runtime.Register("synchronizedSortedMap", "(Ljava/util/SortedMap;)Ljava/util/SortedMap;", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public static System.Collections.IDictionary SynchronizedSortedMap(System.Collections.IDictionary m);
[<Android.Runtime.Register("synchronizedSortedMap", "(Ljava/util/SortedMap;)Ljava/util/SortedMap;", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
static member SynchronizedSortedMap : System.Collections.IDictionary -> System.Collections.IDictionary

參數

m
IDictionary

排序後的映射要被「包裹」成同步排序映射。

傳回

一個對指定排序映射的同步視圖。

屬性

備註

回傳一個同步(執行緒安全)的排序映射,並由指定的排序映射作為後盾。 為了確保序列存取,必須 <透過回傳的排序映射(或其視圖)來實現對後方排序映射的強>全/<強> 存取。

使用者在遍歷其集合視圖或其集合視圖subMapheadMaptailMap時,必須手動同步回傳的排序地圖,並透過 Iterator或 : SpliteratorStream

SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
                 ...
             Set s = m.keySet();  // Needn't be in synchronized block
                 ...
             synchronized (m) {  // Synchronizing on m, not s!
                 Iterator i = s.iterator(); // Must be in synchronized block
                 while (i.hasNext())
                     foo(i.next());
             }

或:

SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
             SortedMap m2 = m.subMap(foo, bar);
                 ...
             Set s2 = m2.keySet();  // Needn't be in synchronized block
                 ...
             synchronized (m) {  // Synchronizing on m, not m2 or s2!
                 Iterator i = s2.iterator(); // Must be in synchronized block
                 while (i.hasNext())
                     foo(i.next());
             }

若不遵循此建議,可能導致非決定性行為。

若指定的排序映射可序列化,則回傳的排序映射將可序列化。

的 java.util.Collections.synchronizedSortedMap(java.util.SortedMap<K, V>)Java 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於