logo

Interfaz de mapa de Java

Un mapa contiene valores según la clave, es decir, el par clave y valor. Cada par de clave y valor se conoce como entrada. Un mapa contiene claves únicas.

Un mapa es útil si tiene que buscar, actualizar o eliminar elementos en función de una clave.

Jerarquía de mapas de Java

Hay dos interfaces para implementar Map en Java: Map y SortedMap, y tres clases: HashMap, LinkedHashMap y TreeMap. La jerarquía de Java Map se detalla a continuación:

Jerarquía de mapas de Java

Un mapa no permite claves duplicadas, pero puede tener valores duplicados. HashMap y LinkedHashMap permiten claves y valores nulos, pero TreeMap no permite ninguna clave o valor nulo.

Un mapa no se puede atravesar, por lo que debe convertirlo en Conjunto usando juego de llaves() o conjunto de entrada() método.

ClaseDescripción
HashMap HashMap es la implementación de Map, pero no mantiene ningún orden.
LinkedHashMapLinkedHashMap es la implementación de Map. Hereda la clase HashMap. Mantiene el orden de inserción.
ÁrbolMapa TreeMap es la implementación de Map y SortedMap. Mantiene un orden ascendente.

Métodos útiles de la interfaz de mapas.

MétodoDescripción
V put(Clave del objeto, Valor del objeto)Se utiliza para insertar una entrada en el mapa.
void putAll(Mapa mapa)Se utiliza para insertar el mapa especificado en el mapa.
V putIfAbsent (tecla K, valor V)Inserta el valor especificado con la clave especificada en el mapa solo si aún no está especificado.
V eliminar (clave de objeto)Se utiliza para eliminar una entrada para la clave especificada.
eliminación booleana (clave del objeto, valor del objeto)Elimina los valores especificados con las claves especificadas asociadas del mapa.
Establecer conjunto de claves()Devuelve la vista Conjunto que contiene todas las claves.
Colocarconjunto de entrada()Devuelve la vista Conjunto que contiene todas las claves y valores.
vacío claro()Se utiliza para restablecer el mapa.
V cálculo (tecla K, función de reasignación BiFunction)Se utiliza para calcular una asignación para la clave especificada y su valor asignado actual (o nulo si no hay una asignación actual).
V ComputeIfAbsent (tecla K, función de mapeo de funciones)Se utiliza para calcular su valor utilizando la función de mapeo dada, si la clave especificada aún no está asociada con un valor (o está asignada a nulo), y la ingresa en este mapa a menos que sea nula.
V ComputeIfPresent (tecla K, función de reasignación BiFunction)Se utiliza para calcular una nueva asignación dada la clave y su valor asignado actual si el valor de la clave especificada está presente y no es nulo.
booleano contieneValor(Valor del objeto)Este método devuelve verdadero si existe algún valor igual al valor dentro del mapa; de lo contrario, devuelve falso.
booleano contiene clave (clave de objeto)Este método devuelve verdadero si existe alguna clave igual a la clave dentro del mapa; de lo contrario, devuelve falso.
booleano es igual (Objeto o)Se utiliza para comparar el objeto especificado con el mapa.
anular para cada uno (acción BiConsumer)Realiza la acción dada para cada entrada en el mapa hasta que se hayan procesado todas las entradas o la acción genere una excepción.
V get (clave de objeto)Este método devuelve el objeto que contiene el valor asociado con la clave.
V getOrDefault(Clave de objeto, V defaultValue)Devuelve el valor al que está asignada la clave especificada, o defaultValue si el mapa no contiene ninguna asignación para la clave.
int código hash()Devuelve el valor del código hash para el mapa.
booleano está vacío()Este método devuelve verdadero si el mapa está vacío; devuelve falso si contiene al menos una clave.
Combinación de V (tecla K, valor V, función de reasignación BiFunction)Si la clave especificada aún no está asociada con un valor o está asociada con un valor nulo, la asocia con el valor no nulo dado.
Reemplazo de V (tecla K, valor V)Reemplaza el valor especificado por una clave especificada.
reemplazo booleano (tecla K, V oldValue, V newValue)Reemplaza el valor anterior con el nuevo valor para una clave especificada.
anular reemplazar todo (función BiFunction)Reemplaza el valor de cada entrada con el resultado de invocar la función dada en esa entrada hasta que se hayan procesado todas las entradas o la función arroje una excepción.
Valores de colección()Devuelve una vista de colección de los valores contenidos en el mapa.
tamaño entero()Este método devuelve el número de entradas en el mapa.

Interfaz de entrada de mapa

La entrada es la subinterfaz de Map. Entonces accederemos a él por el nombre de Map.Entry. Devuelve una vista de colección del mapa, cuyos elementos son de esta clase. Proporciona métodos para obtener clave y valor.

Métodos de la interfaz Map.Entry

MétodoDescripción
K obtener clave()Se utiliza para obtener una clave.
V obtenerValor()Se utiliza para obtener valor.
int código hash()Se utiliza para obtener hashCode.
V setValue (valor V)Se utiliza para reemplazar el valor correspondiente a esta entrada con el valor especificado.
booleano es igual (Objeto o)Se utiliza para comparar el objeto especificado con los otros objetos existentes.
estáticoComparadorcomparandoPorClave()Devuelve un comparador que compara los objetos en orden natural en clave.
Comparador estáticocomparandoByKey(Comparador cmp)Devuelve un comparador que compara los objetos por clave utilizando el Comparador dado.
estáticoComparadorcomparandoPorValor()Devuelve un comparador que compara los objetos en orden natural según su valor.
Comparador estáticocomparandoPorValor(Comparador cmp)Devuelve un comparador que compara los objetos por valor utilizando el comparador dado.

Ejemplo de mapa de Java: no genérico (estilo antiguo)

 //Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } } 

Producción:

 1 Amit 2 Jai 5 Rahul 6 Amit 

Ejemplo de mapa de Java: genérico (nuevo estilo)

 import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 

Producción:

 102 Rahul 100 Amit 101 Vijay 

Ejemplo de mapa de Java: compararByKey()

 import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Producción:

 100=Amit 101=Vijay 102=Rahul 

Ejemplo de mapa de Java: compararByKey() en orden descendente

 import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Producción:

 102=Rahul 101=Vijay 100=Amit 

Ejemplo de mapa de Java: compararByValue()

 import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Producción:

 100=Amit 102=Rahul 101=Vijay 

Ejemplo de mapa de Java: compararByValue() en orden descendente

 import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Producción:

 101=Vijay 102=Rahul 100=Amit