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
headMap
tailMap
任何集合视图或视图的集合视图,或者:Iterator
Spliterator
Stream
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 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。