次の方法で共有


Collections.SynchronizedMap(IDictionary) メソッド

定義

指定したマップに基づく同期された (スレッド セーフな) マップを返します。

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

パラメーター

m
IDictionary

同期されたマップで "ラップ" されるマップ。

戻り値

指定したマップの同期ビュー。

属性

注釈

指定したマップに基づく同期された (スレッド セーフな) マップを返します。 シリアル アクセスを保証するには、返されたマップを使用してバッキング マップへの強力>な全</強力>なアクセスを実現することが重要<です。

ユーザーがコレクション ビューIteratorSpliteratorを走査するときに、返されたマップ上で手動で同期することが不可欠です。またはStream

Map m = Collections.synchronizedMap(new HashMap());
                 ...
             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());
             }

このアドバイスに従わないと、非決定的な動作が発生する可能性があります。

指定されたマップがシリアル化可能な場合、返されるマップはシリアル化できます。

の Java ドキュメントjava.util.Collections.synchronizedMap(java.util.Map<K, V>)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象