linkedhashmap java linkedhashmap example implementation
Este tutorial explica tudo sobre LinkedHashMap em Java, incluindo exemplos e métodos de LinkedHashMap, implementação em Java, LinkedHashMap vs HashMap:
LinkedHashMap em Java é uma implementação que combina a implementação de HashTable e LinkedList. Ele implementa a interface do Mapa. Os pares de valores-chave de LinkedHashMap têm uma ordem previsível de iteração.
Além da interface Map, LinkedHashMap também estende a classe HashMap.
=> Visite aqui para ver a série de treinamento Java para todos.
perguntas da entrevista de jira para scrum master
O que você aprenderá:
LinkedHashMap em Java
Algumas das principais características do LinkedHashMap são:
- Ele contém valores baseados em chave.
- Mantém a ordem de inserção dos pares de valores-chave.
- Não permite duplicatas, possui elementos únicos.
- Ele pode ter uma única chave nula. Mas permite vários valores nulos.
- Java LinkedHashMap não está sincronizado.
Declaração de LinkedHashMap
A classe LinkedHashMap em Java faz parte do pacote java.util.
A declaração geral desta classe em Java é a seguinte:
public class LinkedHashMap extends HashMap implements Map
Aqui K => tipo de chave no mapa.
V => tipo de valores mapeados para chaves.
A hierarquia de classes de LinkedHashMap é mostrada abaixo:
Conforme mostrado no diagrama acima, LinkedHashMap herda as classes HashMap e AbstractMap e implementa a interface Map.
Exemplo de LinkedHashMap
Dada a seguir é um exemplo simples.
import java.util.*; class Main{ public static void main(String args[]){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Resultado:
O conteúdo de LinkedHashMap:
1 UM
2 DOIS
3 TRÊS
4 QUATRO
5 CINCO
como consertar o gateway padrão não está disponível
Construtores e métodos
Vamos discutir os construtores e métodos fornecidos pela classe LinkedHashMap. Primeiro, discutiremos os construtores seguidos de métodos.
Construtores
Protótipo de Construtor | Descrição | |
---|---|---|
conjunto de chaves | Definir keySet () | Retorna um conjunto de chaves no mapa. |
LinkedHashMap () | Construtor padrão para LinkedHashMap. | |
LinkedHashMap (capacidade interna) | Cria um objeto LinkedHashMap com uma determinada capacidade. | |
LinkedHashMap (capacidade interna, float loadFactor) | Cria um objeto LinkedHashMap com a capacidade e loadFactor fornecidos. | |
LinkedHashMap (capacidade interna, float loadFactor, boolean accessOrder) | Cria um objeto LinkedHashMap com uma determinada capacidade e loadFactor. Além disso, o modo de pedido (accessOrder) é especificado. | |
LinkedHashMap (Mapa m) | Cria um objeto LinkedHashMap e o inicializa com os valores do mapa m passados como argumento. |
Métodos
Método | Protótipo de Método | Descrição |
---|---|---|
obter | V get (chave do objeto) | Retorna o valor da chave fornecida. |
Claro | void clear () | Limpa todos os pares de valores-chave no mapa. |
containsValue | boolean containsValue (valor do objeto) | Verifica se o mapa contém uma ou mais chaves mapeadas para o valor fornecido. Retorna verdadeiro se sim. |
entrySet | Definir | Retorna um conjunto de entradas no mapa. |
para cada | void forEach (ação BiConsumer) | Executa a ação fornecida para todas as entradas no mapa. |
getOrDefault | V getOrDefault (chave do objeto, V defaultValue) | Retorna o valor mapeado para a chave. Se nenhum valor for mapeado, o padrão será retornado. |
removeEldestEntry | protected boolean removeEldestEntry (Map.Entry mais velho) | Remove a entrada mais antiga do mapa e retorna verdadeiro na remoção. |
substitua tudo | void replaceAll (função BiFunction) | Chama a função fornecida em cada entrada e substitui o resultado da função pelos valores. |
valores | Valores de coleção () | Retorna a coleção de valores no mapa. |
Implementação em Java
O programa Java abaixo mostra a implementação de LinkedHashMap, demonstrando os métodos discutidos acima.
import java.util.*; public class Main { public static void main(String a[]) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
Resultado:
LinkedHashMap original: {one = Red, two = Green, three = Blue}
LinkedHashMap ‘colors_map’ vazio?: False
Tamanho do mapa: 3
Valor para chave = ‘um’: Vermelho
color_map contém key = ‘two’: true
colors_map contém o valor ‘ree’: false
excluir o elemento ‘um’: Vermelho
Mapa de cores atualizado: {two = Green, three = Blue}
Neste programa, declaramos um mapa de cores e o inicializamos. Em seguida, usamos os vários métodos discutidos acima para obter os resultados.
LinkedHashMap Vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
A complexidade do tempo das operações básicas | O (1) | O (1) | O (1) |
Implementa mapas ordenados. | Implementa mapas não ordenados. | ||
Usa lista duplamente vinculada de baldes. | Usa tabela de hash. | ||
Mantém a ordem ao iterar os elementos. | Não mantém a ordem durante a iteração. | ||
Requer mais memória. | Requer menos memória do que LinkedHashMap. | ||
Operações básicas como adicionar, remover, pesquisar, etc. são mais lentas. | Operações básicas como adicionar e remover pesquisas são mais rápidas. |
HashMap Vs TreeMap Vs LinkedHashMap
Vamos agora comparar as três implementações de mapa viz. HashMap, TreeMap e LinkedHashMap.
A tabela a seguir mostra a comparação / diferença.
Parâmetro de Comparação | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Interface | Mapa | Mapa | Mapa, SortedMap, NavigableMap |
Estrutura de dados | Lista de baldes | Lista dupla vinculada de baldes | Árvore vermelho-preto |
Ordem de Iteração | Nenhum pedido mantido. | Classificados de acordo com o pedido de inserção | Classificados de acordo com a ordem natural dos elementos |
Chaves Nulas | São autorizadas | São autorizadas | Não permitido |
Sincronização | Não sincronizado | Não sincronizado | Não sincronizado |
Requisito de chaves | Precisa sobrescrever os métodos equals () e hashCode () | Precisa sobrescrever os métodos equals () e hashCode () | A ordem natural é mantida ou o comparador precisa ser fornecido |
perguntas frequentes
Q # 1) O que é LinkedHashMap em Java?
Responda: LinkedHashMap em Java é implementado como uma combinação de HashTable e LinkedList. Ele implementa a interface do mapa. Tem uma ordem de iteração previsível. Ele usa internamente uma lista duplamente vinculada para entradas.
Q # 2)Como o LinkedHashMap funciona em Java?
software de recuperação de dados grátis windows 10
Responda: É semelhante ao HashMap, mas difere do HashMap na ordem de inserção que o LinkedHashMap mantém. Os elementos no LinkedHashMap são armazenados da mesma maneira que são inseridos na estrutura de dados.
Q # 3)Como faço um loop em um LinkedHashMap?
Responda: Podemos fazer um loop em um LinkedHashMap usando um iterador.
A seguir estão as etapas que podemos seguir para iterar por meio do LinkedHashMap usando o iterador:
- Crie um novo objeto LinkedHashMap.
- Use o método Put API para inserir pares de valores-chave no mapa.
- Chame o método da API entrySet () para obter um conjunto de pares chave-valor no mapa.
- Invoque o iterador neste conjunto para recuperar cada par de valor-chave usando os métodos de API getKey () e getValue ().
Q # 4)Qual é o uso de LinkedHashMap em Java?
Responda: O principal uso de LinkedHashMap em Java é usá-lo para preservar a ordem de inserção. Também pode ser usado para preservar a ordem de acesso através da qual as chaves são acessadas. Por ser mais rápido que o HashMap, LinkedHashMap pode ser usado no lugar do HashMap onde o desempenho é crítico.
Q # 5)O HashMap é mais rápido que o LinkedHashMap?
Responda: Ambos são semelhantes em desempenho. O HashMap precisa de menos memória quando comparado ao LinkedHashMap, pois o HashMap não mantém a ordem de acesso. Assim, comparativamente, o HashMap é mais rápido.
Conclusão
Neste tutorial, discutimos o LinkedHashMap em Java. Vimos os detalhes relativos à declaração de classe, hierarquia de classe, construtores e métodos.
Também aprendemos as principais diferenças entre LinkedHashMap e HashMap. Também discutimos a diferença de 3 vias entre LinkedHashMap, HashMap e TreeMap.
Em nosso próximo tutorial, exploraremos mais tópicos sobre o Java Collection Framework.
=> Veja a série de treinamento simples em Java aqui.
Leitura recomendada
- Tutorial de reflexão Java com exemplos
- Tutoriais detalhados do Eclipse para iniciantes
- O que é um Java HashTable - implementação e exemplo de HashTable
- Tutorial de JAVA para iniciantes: mais de 100 tutoriais práticos em vídeo Java
- Modificadores de acesso em Java - Tutorial com exemplos
- Tutorial Java SWING: Container, Componentes e Manipulação de Eventos
- Java String contains () Tutorial de método com exemplos
- Tutorial Java String com String Buffer e String Builder