Java: la clase LinkedHashMap

Esta clase extiende HashMap y mantiene una lista vinculada de las entradas en el mapa, en el orden en que fueron insertadas. Esto permite la iteración del orden de inserción sobre el mapa. Es decir, al iterar un LinkedHashMap, los elementos serán devueltos en el orden en que fueron insertados.

También puede crear un LinkedHashMap que devuelva sus elementos en el orden en que se accedió por última vez.

A continuación se muestra la lista de constructores admitidos por la clase LinkedHashMap.

No Señor. Constructor y descripción
1

LinkedHashMap( )

Este constructor construye un LinkedHashMap predeterminado.

2

LinkedHashMap(Map m)

Este constructor inicializa LinkedHashMap con los elementos de la clase Map dada m.

3

LinkedHashMap(int capacity)

Este constructor inicializa un LinkedHashMap con la capacidad dada.

4

LinkedHashMap(int capacity, float fillRatio)

Este constructor inicializa tanto la capacidad como la proporción de llenado. El significado de capacidad y proporción de llenado es el mismo que para HashMap.

5

LinkedHashMap(int capacity, float fillRatio, boolean Order)

Este constructor le permite especificar si los elementos se almacenarán en la lista enlazada por orden de inserción o por orden de último acceso. Si Order es verdadero, entonces se usa el orden de acceso. Si el pedido es falso, se utiliza el pedido de inserción.

Además de los métodos heredados de sus clases principales, LinkedHashMap define los siguientes métodos:

No Señor. Método y descripción
1

void clear()

Elimina todas las asignaciones de este mapa.

2

boolean containsKey(Object key)

Devuelve verdadero si este mapa asigna una o más claves al valor especificado.

3

Object get(Object key)

Devuelve el valor al que este mapa asigna la clave especificada.

4

protected boolean removeEldestEntry(Map.Entry eldest)

Devuelve verdadero si este mapa debe eliminar su entrada más antigua.

Ejemplo

El siguiente programa ilustra varios de los métodos admitidos por esta colección:

import java.util.*;
public class LinkedHashMapDemo {

   public static void main(String args[]) {
      // Create a hash map
      LinkedHashMap lhm = new LinkedHashMap();
      
      // Put elements to the map
      lhm.put("Zara", new Double(3434.34));
      lhm.put("Mahnaz", new Double(123.22));
      lhm.put("Ayan", new Double(1378.00));
      lhm.put("Daisy", new Double(99.22));
      lhm.put("Qadir", new Double(-19.08));
      
      // Get a set of the entries
      Set set = lhm.entrySet();
      
      // Get an iterator
      Iterator i = set.iterator();
      
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Deposit 1000 into Zara's account
      double balance = ((Double)lhm.get("Zara")).doubleValue();
      lhm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + lhm.get("Zara"));
   }
}

Esto producirá el siguiente resultado:

Salida

Zara: 3434.34
Mahnaz: 123.22
Ayan: 1378.0
Daisy: 99.22
Qadir: -19.08

Zara's new balance: 4434.34