Diferença entre hashmap e map em Java
-
A interface
Map
em Java -
A classe
HashMap
em Java -
Use uma referência de
Map
para reter objetos em Java -
Use uma referência de
Map
para 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