Collections.SynchronizedSortedMap(IDictionary) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した並べ替えられたマップに基づいて同期された (スレッド セーフな) 並べ替えられたマップを返します。
[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
パラメーター
同期された並べ替えられたマップに "ラップ" される並べ替えられたマップ。
戻り値
指定した並べ替えられたマップの同期ビュー。
- 属性
注釈
指定した並べ替えられたマップに基づいて同期された (スレッド セーフな) 並べ替えられたマップを返します。 シリアル アクセスを保証するには、返された並べ替えられたマップ (またはそのビュー) を使用して、バッキングの並べ替えられたマップに対する強力>な全</強力>なアクセスを実現することが重要<です。
ユーザーは、返された並べ替えられたマップで、そのコレクション ビュー、またはいずれかのビューのコレクション subMap
Stream
headMap
tailMap
Iterator
Spliterator
ビューを走査する際に、手動で同期することが不可欠です。
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 ドキュメントjava.util.Collections.synchronizedSortedMap(java.util.SortedMap<K, V>)
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。