Collections.SynchronizedNavigableSet(INavigableSet) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает синхронизированный (потокобезопасный) набор навигации, поддерживаемый указанным набором навигации.
[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 для java.util.Collections.synchronizedNavigableSet(java.util.NavigableSet<T>)
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.