Collections.SynchronizedNavigableMap(INavigableMap) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個同步(執行緒安全)的可導航映射,並由指定的可導航映射作為後盾。
[Android.Runtime.Register("synchronizedNavigableMap", "(Ljava/util/NavigableMap;)Ljava/util/NavigableMap;", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public static Java.Util.INavigableMap SynchronizedNavigableMap(Java.Util.INavigableMap m);
[<Android.Runtime.Register("synchronizedNavigableMap", "(Ljava/util/NavigableMap;)Ljava/util/NavigableMap;", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
static member SynchronizedNavigableMap : Java.Util.INavigableMap -> Java.Util.INavigableMap
參數
可導航地圖將被「包裹」成同步的可導航地圖
傳回
這是指定可導航地圖的同步視圖。
- 屬性
備註
回傳一個同步(執行緒安全)的可導航映射,並由指定的可導航映射作為後盾。 為了確保序列存取,必須 <透過回傳的可導航地圖(或其視圖)來實現對後方可導航地圖的強>全/<強> 存取。
使用者在穿越其任何集合視圖,或其集合視圖時subMapheadMapIteratortailMap,必須手動同步回傳的可導航地圖,並透過 或: SpliteratorStream
NavigableMap m = Collections.synchronizedNavigableMap(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());
}
或:
NavigableMap m = Collections.synchronizedNavigableMap(new TreeMap());
NavigableMap m2 = m.subMap(foo, true, bar, false);
...
Set s2 = m2.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not m2 or s2!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
若不遵循此建議,可能導致非決定性行為。
若指定的可導航地圖可序列化,則該可導航地圖可序列化。
新增於1.8版本。
Java 文件 java.util.Collections.synchronizedNavigableMap(java.util.NavigableMap<K, V>)。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。