Collections.SynchronizedNavigableSet(INavigableSet) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un conjunto navegable sincronizado (seguro para subprocesos) respaldado por el conjunto navegable especificado.
[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
Parámetros
el conjunto navegable que se va a "encapsular" en un conjunto navegable sincronizado
Devoluciones
una vista sincronizada del conjunto navegable especificado
- Atributos
Comentarios
Devuelve un conjunto navegable sincronizado (seguro para subprocesos) respaldado por el conjunto navegable especificado. Para garantizar el acceso serie, es fundamental que <el acceso seguro>a todo< o fuerte> al conjunto navegable de respaldo se realice a través del conjunto navegable devuelto (o sus vistas).
Es imperativo que el usuario sincronice manualmente en el conjunto navegable devuelto al recorrerlo, o cualquiera de sus subSet
vistas , headSet
o tailSet
, a través Iterator
de Stream
o Spliterator
:
NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
...
synchronized (s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
O bien
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());
}
Si no se sigue este consejo, se puede producir un comportamiento no determinista.
El conjunto navegable devuelto se serializará si el conjunto navegable especificado es serializable.
Agregado en la versión 1.8.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.