Collections.SynchronizedNavigableSet(INavigableSet) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回由指定的可导航集支持的已同步(线程安全)可导航集。
[Android.Runtime.Register("synchronizedNavigableSet", "(Ljava/util/NavigableSet;)Ljava/util/NavigableSet;", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public static Java.Util.INavigableSet SynchronizedNavigableSet(Java.Util.INavigableSet s);
[<Android.Runtime.Register("synchronizedNavigableSet", "(Ljava/util/NavigableSet;)Ljava/util/NavigableSet;", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
static member SynchronizedNavigableSet : Java.Util.INavigableSet -> Java.Util.INavigableSet
参数
在同步的可导航集中“包装”的可导航集
返回
指定可导航集的同步视图
- 属性
注解
返回由指定的可导航集支持的已同步(线程安全)可导航集。 为了保证串行访问,必须 <通过返回的可导航集(或其视图)实现对后盾导航集的强>所有</强> 访问。
用户必须在遍历返回的可导航集上手动同步,或者subSet
headSet
tailSet
通过Iterator
Spliterator
Stream
或以下方式在返回的可导航集上手动同步:
NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
...
synchronized (s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
或:
NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
NavigableSet s2 = s.headSet(foo, true);
...
synchronized (s) { // Note: s, not s2!!!
Iterator i = s2.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
未能遵循此建议可能会导致非确定性行为。
如果指定的可导航集可序列化,则返回的可导航集将可序列化。
已在 1.8 中添加。
适用于 . 的 java.util.Collections.synchronizedNavigableSet(java.util.NavigableSet<T>)
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。