Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java LinkedHashMap

Java LinkedHashMap


Neste tutorial, aprenderemos sobre a classe Java LinkedHashMap e suas operações com a ajuda de exemplos.

O LinkedHashMap A classe da estrutura de coleções Java fornece a tabela de hash e a implementação de lista vinculada da interface Map.

O LinkedHashMap A interface estende a classe HashMap para armazenar suas entradas em uma tabela de hash. Ele mantém internamente uma lista duplamente vinculada entre todas as suas entradas para ordenar suas entradas.



Criando um LinkedHashMap


Para criar um hashmap vinculado, devemos importar o java.util.LinkedHashMap pacote primeiro. Depois de importar o pacote, veja como podemos criar hashmaps vinculados em Java.
// LinkedHashMap with initial capacity 8 and load factor 0.6
LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);

No código acima, criamos um hashmap vinculado chamado numbers .

Aqui,

Observe a parte new LinkedHashMap<>(8, 0.6) . Aqui, o primeiro parâmetro é capacidade e o segundo parâmetro é loadFactor .

Capacidade e fator de carga padrão

É possível criar um hashmap vinculado sem definir sua capacidade e fator de carga. Por exemplo,
//LinkedHashMap with default capacity and load factor
LinkedHashMap<Key, Value> numbers1 = new LinkedHashMap<>();

Por padrão,

Observação :O LinkedHashMap class também nos permite definir a ordem de suas entradas. Por exemplo
// LinkedHashMap with specified order
LinkedHashMap<Key, Value> numbers2 = new LinkedHashMap<>(capacity, loadFactor, accessOrder);

Aqui, accessOrder é um valor booleano. Seu valor padrão é false . Nesse caso, as entradas no hashmap vinculado são ordenadas com base em sua ordem de inserção.

No entanto, se true é passado como accessOrder , as entradas no hashmap vinculado serão ordenadas do acesso menos recente ao acesso mais recente.

Criando LinkedHashMap de outros mapas


Aqui está como podemos criar um hashmap vinculado contendo todos os elementos de outros mapas.
import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("LinkedHashMap1: " + evenNumbers);

        // Creating a LinkedHashMap from other LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap2: " + numbers);
    }
}



Saída
LinkedHashMap1: {Two=2, Four=4}
LinkedHashMap2: {Two=2, Four=4, Three=3}

Métodos de LinkedHashMap


O LinkedHashMap classe fornece métodos que nos permitem realizar várias operações no mapa.

Inserir elementos no LinkedHashMap


Por exemplo,

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();

        // Using put()
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("Original LinkedHashMap: " + evenNumbers);

        // Using putIfAbsent()
        evenNumbers.putIfAbsent("Six", 6);
        System.out.println("Updated LinkedHashMap(): " + evenNumbers);

        //Creating LinkedHashMap of numbers
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);

        // Using putAll()
        numbers.putAll(evenNumbers);
        System.out.println("New LinkedHashMap: " + numbers);
    }
}

Saída
Original LinkedHashMap: {Two=2, Four=4}
Updated LinkedHashMap: {Two=2, Four=4, Six=6}
New LinkedHashMap: {One=1, Two=2, Four=4, Six=6}

Acessar elementos LinkedHashMap


1. Usando entrySet(), keySet() e values()

Por exemplo,
import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();

        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

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

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

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

Saída
LinkedHashMap: {One=1, Two=2, Three=3}
Key/Value mappings: [One=1, Two=2, Three=3]
Keys: [One, Two, Three]
Values: [1, 2, 3]

2. Usando get() e getOrDefault()

Por exemplo,
import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

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

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

Saída
LinkedHashMap: {One=1, Two=2, Three=3}
Returned Number: 3
Returned Number: 5

Elementos LinkedHashMap removidos


Por exemplo,
import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

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

        // remove method with two parameters
        boolean result = numbers.remove("Three", 3);
        System.out.println("Is the entry Three removed? " + result);

        System.out.println("Updated LinkedHashMap: " + numbers);
    }
}

Saída
LinkedHashMap: {One=1, Two=2, Three=3}
Removed value: 2
Is the entry {Three=3} removed? True
Updated LinkedHashMap: {One=1}

Outros métodos de LinkedHashMap

Método Descrição
clear() remove todas as entradas do mapa
containsKey() verifica se o mapa contém a chave especificada e retorna um valor booleano
containsValue() verifica se o mapa contém o valor especificado e retorna um valor booleano
size() retorna o tamanho do mapa
isEmpty() verifica se o mapa está vazio e retorna um valor booleano

LinkedHashMap vs. Mapa de hash


Tanto o LinkedHashMap e o HashMap implementa o Map interface. No entanto, existem algumas diferenças entre eles.

Java

  1. Operadores Java
  2. Comentários Java
  3. Java para cada loop
  4. Strings Java
  5. Interface Java
  6. Classe anônima Java
  7. Java try-with-resources
  8. Anotações Java
  9. Asserções Java
  10. Vetor Java