Introducción al mapa
Mapee la clave al objeto del valor. Un mapa no puede contener teclas duplicadas; Cada clave solo puede asignar a un valor como máximo. Esta interfaz reemplaza la clase de diccionario, que es completamente una clase abstracta, no una interfaz.
La interfaz del mapa proporciona tres vistas de colección que permiten ver el contenido de un mapa en forma de un conjunto de clave, un conjunto de valor o un conjunto de relaciones de mapeo de valor clave. El orden de mapeo se define como el orden en el que el iterador devuelve sus elementos en la vista de colección del mapa. Algunas implementaciones de mapeo garantizan explícitamente su pedido, como la clase Treemap; Otros no garantizan su pedido, como la clase hashmap.
Nota: Se debe tener cuidado adicional cuando se usa objetos mutables como claves de mapeo. Cuando un objeto es una clave en un mapa, si el valor del objeto se cambia de una manera que afecta la comparación igual, el comportamiento del mapa será incierto. Un caso especial que esto prohíbe es que un mapa no se permite incluir como clave. Aunque se permite que un mapa se incluya como un valor, tenga cuidado: la definición de iguales y los métodos hashcode ya no serán explícitos en tales mapas.
Todas las clases de implementación de mapeo comunes deben proporcionar dos constructores "estándar": un constructor vacío (sin parámetro) para crear mapas vacíos; y un constructor con un solo parámetro de tipo de mapa para crear un nuevo mapa con la misma relación de mapeo de valor clave que sus parámetros. De hecho, este último constructor permite al usuario copiar mapas arbitrarios para generar un mapa equivalente de la clase requerida. Aunque esta sugerencia no se puede hacer cumplir (porque la interfaz no puede contener constructores), todas las implementaciones de mapeo comunes en el JDK lo siguen.
Los métodos de "destruir" contenidos en esta interfaz modifican la asignación de sus operaciones, y si este mapeo no admite la operación, estos métodos lanzarán una Operación no compatible. Si es así, entonces estos métodos pueden (pero no requieren) lanzar no compatibilidad con OperationException cuando la llamada no es válida para el mapeo. Por ejemplo, si un mapa no modificado cuya relación de mapeo está "superpuesta" está vacía, se puede lanzar una excepción (pero no requerida) al llamar al método Putall (mapa) al mapa.
Algunas implementaciones de mapeo tienen limitaciones en las claves y valores que pueden incluirse. Por ejemplo, algunas implementaciones prohíben las claves y valores nulos, otras tienen restricciones sobre el tipo de claves. Intentar insertar una clave o valor no calificado lanzará una excepción sin control, generalmente una NullPointerException o ClassCastException. Intentar consultar si una clave o valor no calificado puede lanzar una excepción o devolver falso; Algunas implementaciones exhibirán el comportamiento anterior, mientras que otras exhibirán el segundo. En términos generales, al intentar realizar una operación en una clave o valor no calificado y la finalización de la operación no resulta en que se inserta un elemento no calificado en el mapa, se puede lanzar una excepción o la operación puede ser exitosa, dependiendo de la implementación misma. Dichas excepciones están marcadas "opcionales" en la especificación de esta interfaz.
Esta interfaz es miembro del marco de colecciones Java.
Muchos métodos en la interfaz del marco de colecciones se definen de acuerdo con el método igual. Por ejemplo, la especificación del método ContansKey (clave de objeto) dice: "Devuelve verdadero si y solo si este mapa contiene una relación de mapeo para la clave k que satisface (clave == null? K == null: key.equals (k)). Esta especificación no debe interpretarse como: llamar a map.containskey con un parámetro no nulo clave dará como resultado un llamado a la tecla (k) para que la implementación de la llave de arbitraje de la llave sea optimizada a la implementación de la llave que se puede evitar la llave a la llave a la llave que se puede evitar la llave. Llamando a igualdad.
Instrucciones de funcionamiento comunes nulo Clear ()
Elimine todas las relaciones de mapeo de este mapa (acción opcional).
boolean contiene key (clave de objeto)
Devuelve verdadero si este mapa contiene una relación de mapeo para la clave especificada.
Boolean ContinsValue (valor de objeto)
Devuelve verdadero si este mapa mapea una o más claves para el valor especificado.
Set <map.entry <k, v >> entryset ()
Devuelve la vista establecida de las relaciones de mapeo contenidas en este mapa.
booleano es igual (objeto o)
Compare si el objeto especificado es igual a este mapa.
V Get (clave de objeto)
Devuelve el valor asignado por la clave especificada; Si este mapa no contiene la relación de mapeo de la clave, regrese nulo.
int hashcode ()
Devuelve el valor del código hash para este mapa.
boolean isEmpty ()
Devuelve verdadero si este mapa no contiene una relación de mapeo de valor clave.
Establecer <K> KeySet ()
Devuelve la vista establecida de las teclas contenidas en este mapa.
V Put (K Key, Valor V)
Asociar el valor especificado con la clave especificada en este mapa (acción opcional).
void putall (map <? extiende k,? Extiende v> m)
Copie todas las relaciones de mapeo de la asignación especificada en este mapa (acción opcional).
V Eliminar (tecla de objeto)
Si hay una relación de mapeo para una clave, se elimina de este mapa (opcional).
Tize int ()
Devuelve la relación de mapeo de valor clave en este mapa.
Colección <v> valores ()
Devuelve la vista de colección de los valores contenidos en este mapa.
Uso general del mapa
1. Declarar un mapa:
La copia del código es la siguiente:
Mapa map = nuevo hashmap ();
2. Pon el valor en el mapa. Nota: El mapa se almacena en forma de valor clave, como:
La copia del código es la siguiente:
map.put ("sa", "dd");
3. Tome el valor del mapa:
La copia del código es la siguiente:
Cadena str = map.get ("sa"). ToString,
El resultado es: str = "dd '
4. iterar a través de un mapa y obtener la clave y el valor de él:
La copia del código es la siguiente:
Mapa m = nuevo hashmap ();
para (objeto obj: map.keySet ()) {
Valor de objeto = map.get (obj);
}