Поделиться через


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

Параметры

s
INavigableSet

навигация по набору, который будет "упакован" в синхронизированном наборе навигации

Возвращаемое значение

синхронизированное представление указанного навигацивного набора

Атрибуты

Комментарии

Возвращает синхронизированный (потокобезопасный) набор навигации, поддерживаемый указанным набором навигации. Чтобы гарантировать последовательный доступ, важно, чтобы <надежный и< надежный>> доступ к резервному набору навигации осуществляется с помощью возвращаемого навигация набора (или его представлений).

Очень важно, чтобы пользователь вручную синхронизирулся с возвращаемым набором навигации при обходе или любой из его subSet, headSetили tailSet представлений, через IteratorSpliterator или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.

Применяется к