Dicionário Java
Na linguagem Java, o Dicionário é representado usando uma estrutura de dados chamada interface Map
. A estrutura de dados Map
é usada para apresentar dados em pares chave-valor. O Map
é uma interface que mantém o controle de todas as chaves e os valores correspondentes. Um usuário pode recuperar o valor com base em uma chave exclusiva. A interface Map
contém as seguintes propriedades:
- Todas as chaves presentes no
Map
são únicas. - Pode haver uma chave exclusiva correspondente a um ou mais valores.
- Chaves são as entidades que não são nulas.
Abaixo está o bloco de código que demonstra o uso de um dicionário ou Map
na linguagem Java.
import java.util.HashMap;
import java.util.Map;
public class Dictionary {
public static void main(String[] args) {
System.out.println("Dictionary in Java");
System.out.println("Using HashMap ");
Map<String, String> map = new HashMap<>();
map.put("1", "Letters with alphabetical Order with key A");
map.put("2", "Letters with alphabetical Order with key B");
System.out.println(map.get("2"));
}
}
O Map
é uma interface presente separadamente, à parte da hierarquia do framework Coleção
.
O Map
está presente no pacote java.util
e mostra como uma chave é mapeada para os valores. Pode haver várias implementações em um mapa, que são:
HashMap
LinkedHashMap
Hashtable
O uso de cada um pode variar de acordo com as necessidades dos usuários para a implementação.
No trecho de código acima, a implementação HashMap
é usada. É a classe padrão e amplamente usada na linguagem Java. A diferença entre os três tipos é definida a seguir.
HashMap
é introduzido na versão Java 1.2, enquanto Hashtable
é uma classe legada. É thread-safe e, portanto, operações simultâneas são permitidas entre vários threads, mantendo a consistência no código. Mas o HashMap
não é seguro para thread e não permite concorrência.
Devido à natureza thread-safe de HashMap
, é mais rápido em desempenho do que Hashtable
. Além disso, HashMap
é rápido para falhas e lança ConcurrencyException
quando sua instância é manipulada por vários encadeamentos ao mesmo tempo. Em contraste, Hashtable
parece à prova de falhas. O caso de uso de LinkedHashMap
reside quando um usuário deseja salvar o pedido de inserção.
A instância Map
é criada usando a classe HashMap
no bloco de código acima. As operações como get
e put
são usadas para armazenar e recuperar os valores específicos da instância. O método put
leva dois parâmetros que são a chave e seu valor.
Internamente, a chave é avaliada primeiro se estiver presente no objeto de mapa usando a função containsKey()
. Se for verdadeiro, o valor atual da chave será substituído pelo novo valor. O método lança UnsupportedOperationException
se a operação definida não for suportada pelo Map
com a chave fornecida.
A ClassCastException
se a chave ou o valor impede que a chave seja armazenada, NullPointerException
se a chave ou o valor especificado for null
e o Map
não permite chaves ou valores null
. IllegalArgumentException
se alguma propriedade da chave ou valor impedir que seja armazenado no Map
.
Uma vez que a chave é inserida no Map
, ela é recuperada usando a função get
. A função get
leva um único parâmetro que é a chave exclusiva. Ele lança ClassCastException
e NullPointerException
quando a chave é inadequada ou se a chave especificada é nula
.
Abaixo está a saída da interface do mapa usando a classe HashMap
.
Dictionary in Java Using HashMap Letters with alphabetical Order with key B
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn