Lenguaje

Collections.SynchronizedNavigableMap(INavigableMap) Método

Definición

Devuelve un mapa navegable sincronizado (seguro para subprocesos) respaldado por el mapa navegable especificado.

[Android.Runtime.Register("synchronizedNavigableMap", "(Ljava/util/NavigableMap;)Ljava/util/NavigableMap;", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public static Java.Util.INavigableMap SynchronizedNavigableMap(Java.Util.INavigableMap m);
[<Android.Runtime.Register("synchronizedNavigableMap", "(Ljava/util/NavigableMap;)Ljava/util/NavigableMap;", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
static member SynchronizedNavigableMap : Java.Util.INavigableMap -> Java.Util.INavigableMap

Parámetros

m
INavigableMap

mapa navegable que se va a "encapsular" en un mapa navegable sincronizado

Devoluciones

una vista sincronizada del mapa navegable especificado.

Atributos

Comentarios

Devuelve un mapa navegable sincronizado (seguro para subprocesos) respaldado por el mapa navegable especificado. Para garantizar el acceso en serie, es fundamental que <el acceso seguro>y< seguro> al mapa navegable de respaldo se realice a través del mapa navegable devuelto (o sus vistas).

Es imperativo que el usuario sincronice manualmente en el mapa navegable devuelto al recorrer cualquiera de sus vistas de colección, o las vistas de colecciones de cualquiera de sus subMapvistas , headMap o tailMap , a través Iteratorde o SpliteratorStream:

NavigableMap m = Collections.synchronizedNavigableMap(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());
             }

or:

NavigableMap m = Collections.synchronizedNavigableMap(new TreeMap());
             NavigableMap m2 = m.subMap(foo, true, bar, false);
                 ...
             Set s2 = m2.keySet();  // Needn't be in synchronized block
                 ...
             synchronized (m) {  // Synchronizing on m, not m2 or s2!
                 Iterator i = s.iterator(); // Must be in synchronized block
                 while (i.hasNext())
                     foo(i.next());
             }

Si no se sigue este consejo, se puede producir un comportamiento no determinista.

El mapa navegable devuelto se serializará si el mapa navegable especificado es serializable.

Agregado en la versión 1.8.

Java documentación para java.util.Collections.synchronizedNavigableMap(java.util.NavigableMap<K, V>).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a