IMap Interfaz

Definición

Objeto que asigna claves a valores.

[Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public interface IMap : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type IMap = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Derivado
Atributos
Implementaciones

Comentarios

Objeto que asigna claves a valores. Un mapa no puede contener claves duplicadas; cada clave puede asignarse a un valor como máximo.

Esta interfaz tiene lugar de la Dictionary clase , que era una clase totalmente abstracta en lugar de una interfaz.

La Map interfaz proporciona tres vistas de colección, que permiten que el contenido de un mapa se vea como un conjunto de claves, una colección de valores o un conjunto de asignaciones de clave-valor. El orden de un mapa se define como el orden en que los iteradores de las vistas de colección del mapa devuelven sus elementos. Algunas implementaciones de mapa, como la TreeMap clase , hacen garantías específicas en cuanto a su orden; otras, como la HashMap clase , no lo hacen.

Nota: Se debe tener mucho cuidado si los objetos mutables se usan como claves de mapa. El comportamiento de un mapa no se especifica si el valor de un objeto cambia de una manera que afecta a equals las comparaciones mientras el objeto es una clave del mapa. Un caso especial de esta prohibición es que no se permite que un mapa se contenga como clave. Aunque se permite que un mapa se contenga como un valor, se recomienda extrema precaución: los equals métodos y hashCode ya no están bien definidos en este mapa.

Todas las clases de implementación de mapa de uso general deben proporcionar dos constructores "estándar": un constructor void (sin argumentos) que crea un mapa vacío y un constructor con un único argumento de tipo Map, que crea un nuevo mapa con las mismas asignaciones de clave-valor que su argumento. En efecto, el último constructor permite al usuario copiar cualquier mapa, lo que genera un mapa equivalente de la clase deseada. No hay ninguna manera de aplicar esta recomendación (ya que las interfaces no pueden contener constructores), pero todas las implementaciones de mapa de uso general del JDK cumplen.

Los métodos "destructivos" contenidos en esta interfaz, es decir, los métodos que modifican el mapa en el que operan, se especifican para iniciar UnsupportedOperationException si este mapa no admite la operación. Si este es el caso, estos métodos pueden, pero no son necesarios, producir si UnsupportedOperationException la invocación no tendría ningún efecto en el mapa. Por ejemplo, invocar el #putAll(Map) método en una asignación no modificable puede, pero no es necesario, producir la excepción si el mapa cuyas asignaciones van a estar "superpuestas" está vacía.

Algunas implementaciones de mapa tienen restricciones en las claves y los valores que pueden contener. Por ejemplo, algunas implementaciones prohíben valores y claves NULL, y algunas tienen restricciones en los tipos de sus claves. Si se intenta insertar una clave o un valor no válidos, se produce una excepción no desactivada, normalmente NullPointerException o ClassCastException. Si se intenta consultar la presencia de una clave o valor no apto, se puede producir una excepción o simplemente devolver false; algunas implementaciones mostrarán el comportamiento anterior y algunas mostrarán esta última. Por lo general, si se intenta realizar una operación en una clave o un valor no aptos cuya finalización no daría lugar a la inserción de un elemento no apto en el mapa, se puede producir una excepción o puede realizarse correctamente, en la opción de la implementación. Estas excepciones se marcan como "opcionales" en la especificación de esta interfaz.

Muchos métodos de las interfaces de Collections Framework se definen en términos del Object#equals(Object) equals método . Por ejemplo, la especificación del #containsKey(Object) containsKey(Object key) método indica: "devuelve true si y solo si este mapa contiene una asignación para una clave k de tal forma que (key==null ? k==null : key.equals(k))". Esta especificación no debe interpretarse para indicar que la invocación Map.containsKey con un argumento key que no sea NULL hará key.equals(k) que se invoque para cualquier clave k. Las implementaciones son gratuitas para implementar optimizaciones en las que se evita la equals invocación, por ejemplo, comparando primero los códigos hash de las dos claves. (La Object#hashCode() especificación garantiza que dos objetos con códigos hash distintos no pueden ser iguales). Por lo general, las implementaciones de las distintas interfaces del marco de colecciones son libres de aprovechar el comportamiento especificado de los métodos subyacentes Object donde el implementador considere adecuado.

Algunas operaciones de asignación que realizan recorrido recursivo del mapa pueden producir un error con una excepción para las instancias autorreferenciales en las que el mapa se contiene directa o indirectamente. Esto incluye los clone()métodos , equals()hashCode() y toString() . Las implementaciones pueden controlar opcionalmente el escenario autorreferencial, pero la mayoría de las implementaciones actuales no lo hacen.

<h2>"unmodifiable">Unmodifiable Maps</h2>

Los Map#of() Map.ofmétodos de fábrica estáticos , Map#ofEntries(Map.Entry...) Map.ofEntriesy Map#copyOf Map.copyOf proporcionan una manera cómoda de crear mapas no modificables. Las Map instancias creadas por estos métodos tienen las siguientes características:

<ul>li Son i no modificables</i>.><>< Las claves y los valores no se pueden agregar, quitar ni actualizar. Llamar a cualquier método mutador en el mapa siempre UnsupportedOperationException hará que se produzca. Sin embargo, si las claves o los valores contenidos son mutables por sí mismos, esto puede hacer que el mapa se comporte incoherentemente o que su contenido parezca cambiar. <li>No permiten null claves y valores. Los intentos de crearlos con null claves o valores dan como NullPointerExceptionresultado . <li>Son serializables si todas las claves y valores son serializables. <li>rechazan las claves duplicadas en el momento de la creación. Las claves duplicadas que se pasan a un método de generador estático dan como IllegalArgumentExceptionresultado . <li>El orden de iteración de las asignaciones no está especificado y está sujeto a cambios. <li>Son basados en valores. Los programadores deben tratar las instancias que son #equals(Object) iguales que intercambiables y no deben usarlas para la sincronización o puede producirse un comportamiento impredecible. Por ejemplo, en una versión futura, es posible que se produzca un error en la sincronización. Los autores de las llamadas no deben realizar suposiciones sobre la identidad de las instancias devueltas. Las factorías son gratuitas para crear nuevas instancias o reutilizar las existentes. <li>Se serializan según se especifica en la página Formulario serializado . </ul>

Esta interfaz es miembro de Java Collections Framework.

Se agregó en la versión 1.2.

Documentación de Java para java.util.Map.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Propiedades

Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
IsEmpty

Devuelve si este mapa está vacío.

JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve una JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Clear()

Quita todas las asignaciones de este mapa (operación opcional).

Compute(Object, IBiFunction)

Intenta calcular una asignación para la clave especificada y su valor asignado actual (o null si no hay ninguna asignación actual).

ComputeIfAbsent(Object, IFunction)

Si la clave especificada aún no está asociada a un valor (o se asigna a null), intenta calcular su valor mediante la función de asignación especificada y lo introduce en este mapa a menos nullque .

ComputeIfPresent(Object, IBiFunction)

Si el valor de la clave especificada está presente y no es NULL, intenta calcular una nueva asignación dada la clave y su valor asignado actual.

ContainsKey(Object)

Devuelve true si este mapa contiene una asignación para la clave especificada.

ContainsValue(Object)

Devuelve true si este mapa asigna una o varias claves al valor especificado.

CopyOf(IDictionary)

Devuelve un mapa no modificable que contiene las entradas del mapa especificado.

Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Entry(Object, Object)

Devuelve un inmutable Entry que contiene la clave y el valor especificados.

EntrySet()

Devuelve una Set vista de las asignaciones contenidas en este mapa.

Equals(Object)

Compara el objeto especificado con este mapa para obtener igualdad.

Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
ForEach(IBiConsumer)

Realiza la acción especificada para cada entrada de este mapa hasta que se hayan procesado todas las entradas o la acción produzca una excepción.

Get(Object)

Devuelve el valor al que se asigna la clave especificada o null si este mapa no contiene ninguna asignación para la clave.

GetHashCode()

Devuelve el valor de código hash de esta asignación.

GetOrDefault(Object, Object)

Devuelve el valor al que se asigna la clave especificada o defaultValue si este mapa no contiene ninguna asignación para la clave.

KeySet()

Devuelve una Set vista de las claves contenidas en este mapa.

Merge(Object, Object, IBiFunction)

Si la clave especificada aún no está asociada a un valor o está asociada a null, la asocia al valor distinto de NULL especificado.

Of()

Devuelve un mapa no modificable que contiene cero asignaciones.

Of(Object, Object)

Devuelve un mapa no modificable que contiene una sola asignación.

Of(Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene dos asignaciones.

Of(Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene tres asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene cuatro asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene cinco asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene seis asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene siete asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene ocho asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene nueve asignaciones.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Devuelve un mapa no modificable que contiene diez asignaciones.

OfEntries(IMapEntry[])

Devuelve un mapa inmutable que contiene claves y valores extraídos de las entradas especificadas.

Put(Object, Object)

Asocia el valor especificado a la clave especificada en esta asignación (operación opcional).

PutAll(IDictionary)

Copia todas las asignaciones del mapa especificado a esta asignación (operación opcional).

PutIfAbsent(Object, Object)

Si la clave especificada aún no está asociada a un valor (o se asigna a null) la asocia con el valor especificado y devuelve , de lo contrario devuelve nullel valor actual.

Remove(Object)

Quita la asignación de una clave de este mapa si está presente (operación opcional).

Remove(Object, Object)

Quita la entrada de la clave especificada solo si está asignada actualmente al valor especificado.

Replace(Object, Object)

Reemplaza la entrada de la clave especificada solo si está asignada actualmente a algún valor.

Replace(Object, Object, Object)

Reemplaza la entrada de la clave especificada solo si está asignada actualmente al valor especificado.

ReplaceAll(IBiFunction)

Reemplaza el valor de cada entrada por el resultado de invocar la función especificada en esa entrada hasta que se hayan procesado todas las entradas o la función produzca una excepción.

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Objeto que asigna claves a valores.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
Size()

Devuelve el número de asignaciones de clave-valor en este mapa.

UnregisterFromRuntime()

Anule el registro de esta instancia para que el tiempo de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)
Values()

Devuelve una Collection vista de los valores contenidos en este mapa.

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Objeto que asigna claves a valores.

GetJniTypeName(IJavaPeerable)

Objeto que asigna claves a valores.

Se aplica a