CodeGym /Blog Java /Random-ES /LinkedHashMap en Java
John Squirrels
Nivel 41
San Francisco

LinkedHashMap en Java

Publicado en el grupo Random-ES

¿Qué es LinkedHashMap en Java?

La clase LinkedHashMap del marco de Colecciones es la implementación Hashtable y LinkedList de la interfaz Map . Almacena sus entradas en una Hashtable y utiliza una lista doblemente enlazada internamente para mantener el orden de inserción. Esta LinkedList define el orden de inserción, que es el orden en que se insertaron las claves en el Mapa . HashMap proporcionó el beneficio de una inserción , búsqueda y eliminación rápidas , pero en LinkedHashMap la implementación de LinkedList también mantiene el orden de inserción .LinkedHashMap en Java - 1

Características de LinkedHashMap

  1. Contiene valores basados ​​en la clave.
  2. Contiene elementos únicos.
  3. Puede tener una clave nula y varios valores nulos.
  4. No está sincronizado.
  5. Mantiene el orden de inserción lo que hace que la iteración sea más cara.

Factores de rendimiento

El rendimiento de LinkedHashMap depende principalmente de dos factores que se describen a continuación.

Capacidad

La capacidad significa la cantidad de entradas que puede almacenar. La capacidad predeterminada es 16 si no se proporciona ningún parámetro. Factor de carga El factor de carga significa que cada vez que el HashMap se completa con un porcentaje específico proporcionado como parámetro, se crea un nuevo HashMap que tiene el doble de tamaño y todas las entradas se mueven a este nuevo. El factor de carga predeterminado para un HashMap es 0,75 . También se le conoce como proporción de llenado .

Declaración de LinkedHashMap

Para crear un LinkedHashMap , primero debemos importar el paquete, que es java.util.LinkedHashMap .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Aquí, Clave es el tipo de claves en el mapa. El valor es el tipo de valores asignados en el mapa. 12 es la capacidad, lo que significa que almacenará 12 entradas en el mapa. 0.5f es el factor de carga, lo que significa que cuando se completa el 50%, se creará un nuevo mapa y se moverán todos los valores a este nuevo.

Métodos comunes de LinkedHashMap

Aquí hay una lista de algunos métodos comunes de LinkedHashMap .
Métodos Descripción
claro() Elimina todas las asignaciones en el mapa.
contieneValor(Valor del objeto) Devuelve verdadero si el mapa asigna la clave al valor especificado.
conjunto de entrada() Devuelve la vista Establecer de las asignaciones en el mapa.
obtener (clave de objeto) Devuelve el valor de la clave especificada o nulo si no se especifica ninguna clave.
juego de llaves() Devuelve la vista Establecer de las claves en el mapa.
valores() Devuelve la vista Colección de los valores en el mapa.
getOrDefault(Clave de objeto, V valor predeterminado) Devuelve el valor al que está asociada la clave especificada o defaultValue si no hay ninguna clave asociada.

Ejemplo de LinkedHasMap

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of odd numbers
        LinkedHashMap<String, Integer> oddNumbers = new LinkedHashMap<>();
        // Using the put() method
        oddNumbers.put("One", 1);
        oddNumbers.put("Three", 3);
        System.out.println("LinkedHashMap1: " + oddNumbers);

        // Creating another LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("Two", 2);
        // Using putAll() method
        numbers.putAll(oddNumbers);
        System.out.println("LinkedHashMap2: " + numbers);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet() method
        System.out.println("Keys: " + numbers.keySet());

        // Using values() method
        System.out.println("Values: " + numbers.values());

        // Using get() method
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault() method
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);

        // Using remove() method
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());
    }
}

Producción

LinkedHashMap1: {Uno=1, Tres=3} LinkedHashMap2: {Dos=2, Uno=1, Tres=3} Asignaciones de clave/valor: [Dos=2, Uno=1, Tres=3] Claves: [Dos, uno , Tres] Valores: [2, 1, 3] Número devuelto: 3 Número devuelto: 5 Valor eliminado: 2 Asignaciones de clave/valor: [Uno=1, Tres=3]

LinkedHashMap y HashMap

Veamos algunas diferencias entre ellos, ya que ambos implementan la interfaz Map .
  1. LinkedHashMap mantiene el orden de inserción mientras implementa la lista doblemente enlazada internamente.
  2. LinkedHashMap necesita más almacenamiento ya que implementa LinkedList .
  3. En cuanto al rendimiento, LinkedHashMap es más lento que HashMap .

Conclusión

Esperamos que comprenda la clase LinkedHashMap en Java, sus diferentes métodos y su implementación. Siéntete libre de practicar y volver cuando necesites más ayuda. ¡Feliz aprendizaje!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION