Java - a classe LinkedHashMap

Essa classe estende o HashMap e mantém uma lista vinculada das entradas no mapa, na ordem em que foram inseridas. Isso permite a iteração da ordem de inserção no mapa. Ou seja, ao iterar um LinkedHashMap, os elementos serão retornados na ordem em que foram inseridos.

Você também pode criar um LinkedHashMap que retorna seus elementos na ordem em que foram acessados ​​pela última vez.

A seguir está a lista de construtores suportados pela classe LinkedHashMap.

Sr. Não. Construtor e descrição
1

LinkedHashMap( )

Este construtor constrói um LinkedHashMap padrão.

2

LinkedHashMap(Map m)

Este construtor inicializa o LinkedHashMap com os elementos da classe Map fornecida m.

3

LinkedHashMap(int capacity)

Este construtor inicializa um LinkedHashMap com a capacidade fornecida.

4

LinkedHashMap(int capacity, float fillRatio)

Este construtor inicializa a capacidade e a taxa de preenchimento. O significado de capacidade e taxa de preenchimento são os mesmos que para HashMap.

5

LinkedHashMap(int capacity, float fillRatio, boolean Order)

Este construtor permite que você especifique se os elementos serão armazenados na lista vinculada por ordem de inserção ou por ordem de último acesso. Se Order for true, o pedido de acesso será usado. Se Order for false, o pedido de inserção será usado.

Além dos métodos herdados de suas classes pai, LinkedHashMap define os seguintes métodos -

Sr. Não. Método e Descrição
1

void clear()

Remove todos os mapeamentos deste mapa.

2

boolean containsKey(Object key)

Retorna verdadeiro se este mapa mapeia uma ou mais chaves para o valor especificado.

3

Object get(Object key)

Retorna o valor para o qual este mapa mapeia a chave especificada.

4

protected boolean removeEldestEntry(Map.Entry eldest)

Retorna verdadeiro se este mapa deve remover sua entrada mais antiga.

Exemplo

O programa a seguir ilustra vários dos métodos suportados por esta coleção -

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"));
   }
}

Isso produzirá o seguinte resultado -

Resultado

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

Zara's new balance: 4434.34