Diferença entre hashmap e map em Java
-
A interface
Mapem Java -
A classe
HashMapem Java -
Use uma referência de
Mappara reter objetos em Java -
Use uma referência de
Mappara reter objetos em Java
Este tutorial apresenta as principais diferenças entre Map e HashMap em Java.
Em Java, Map é uma interface usada para armazenar dados em um par chave-valor, enquanto HashMap é a classe de implementação da interface Map. Java tem várias classes (TreeHashMap, LinkedHashMap) que implementam a interface Map para armazenar dados em um par de valor-chave. Vamos ver alguns exemplos.
A interface Map em Java
A interface Map sozinha não pode ser usada para armazenar dados, mas podemos criar um objeto de suas classes de implementação e então usar a referência Map para armazenar o objeto. Aqui, usamos a classe HashMap para armazenar dados e a interface Map para armazenar a referência desta classe. Veja o exemplo abaixo.
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
}
}
Resultado:
{One=1, Two=2, Three=3}
A classe HashMap em Java
HashMap é uma classe de implementação da interface Map. Portanto, podemos usá-lo para criar uma coleção de pares de valores-chave. Veja o exemplo abaixo.
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
}
}
Resultado:
{One=1, Two=2, Three=3}
Use uma referência de Map para reter objetos em Java
Visto que Map é uma interface, podemos usá-lo para manter a referência de suas classes de implementação, como HashMap, TreeMap, etc. Podemos manter um objeto TreeMap ou HashMap na interface Map. Veja o exemplo abaixo.
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class SimpleTesting {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
Map<String, Integer> tmap = new TreeMap<>(map);
System.out.println(tmap);
}
}
Resultado:
{One=1, Two=2, Three=3}
{One=1, Three=3, Two=2}
Use uma referência de Map para reter objetos em Java
É um exemplo importante de uso da referência Map ao trabalhar com suas classes de implementação. Veja, temos um método que recebe um objeto Map como argumento. Assim, no momento da chamada, podemos passar o objeto de qualquer classe como HashMap ou HashTable. Veja o exemplo abaixo.
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class SimpleTesting {
static void printMap(Map<String, Integer> map) {
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
public static void main(String[] args) {
HashMap<String, Integer> hashmap = new HashMap<>();
hashmap.put("One", 1);
hashmap.put("Two", 2);
hashmap.put("Three", 3);
printMap(hashmap);
TreeMap<String, Integer> tmap = new TreeMap<>(hashmap);
printMap(tmap);
LinkedHashMap<String, Integer> lmap = new LinkedHashMap<>(hashmap);
printMap(lmap);
}
}
Execute o código conforme abaixo.
Java SimpleTesting 10 20
Resultado:
10
20
Artigo relacionado - Java Map
- Crie um map ordenado em Java
- Crie um map em Java
- Como converter JSON para mapa em Java
- Como Iterar Sobre Cada Elemento do Mapa em Java
- Como obter a chave do valor em Java Hashmap