Boa noite amigos,
Estou estudando e me deparei com uma parte em um livro que diz que, toda classe que implementa a interface Map deve sobrescrever equals() e hashCode(), porém só tem um exemplo, muito superficial e que me deixou com duvidas:
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class TesteHashMap {
public static void main(String[] args) {
Map lista = new HashMap();
lista.put(1, "Ricardo");
lista.put(2,"Andrea");
lista.put(3, "Marina");
lista.put(4, "Edu");
lista.put(5, "Fusca");
lista.put(6, "Bicicleta");
System.out.println(lista.get(2));//busca pela chave, que neste caso é um número
System.out.println(lista.get(1));
System.out.println(lista.get(3));
System.out.println(lista.get(4));
//System.out.println(lista.get(5));
//System.out.println(lista.get(6));
lista.remove(2);
System.out.println(lista.get(2));//removi elemento numero dois e o retorno é null, não havendo reordenação dos elementos
System.out.println(lista.containsKey(2));//retorna false porque o elemento cuja chave é o numero 2 foi removido
System.out.println(lista.containsValue("Maria"));//false porque não existe este valor no Map
System.out.println(lista.size());//retorna cinco elementos porque um foi removido do Map
Collection c = lista.values();
Iterator i = c.iterator();
while(i.hasNext())
System.out.print(i.next() + " ");
lista.clear();//limpa o Map
System.out.println(lista.get(1));
}
}
O Funcionamento em si eu compreendi, lembrando que ainda não estou usando Generics, a dúvida é: A classe usada neste exemplo, HashMap, já tem a implementação de equals() e hashCode() da qual o livro fala? Agradeço desde já pelas respostas que puderem me dar pra ajudar. Boa noite a todos.