/ / O que o construtor HashMap (Map m) faz? - java, hashmap

O que o construtor HashMap (Map m) faz? - java, hashmap

Me deparei com um pedaço de código onde encontrei

  public class MapImpl {
private static MapImpl mpl = new MapImpl();
Map<String,String> hm;
private MapImpl() {
hm = new HashMap<>();
}
public addContentsToMap(Map<String,String> m){
this.hm=m;
}
public Map returnMap(){
new HashMap<>(hm);
}
}

Eu gosto de saber aqui que, quando o construtor padrão é chamado, o mapa é inicializado para o hashmap e, quando addContentsToMap é chamado, o mapa é formado com valores.

Vejo que o returnMap usa o construtor do HashMap (Mapa m). Passei pelo código fonte do HashMap, mas não tinha noção.

Respostas:

3 para resposta № 1

É necessária qualquer implementação de Map interface e constrói um HashMap que também é uma implementação de Map interface.

Desenvolvedores como Hash-Collections (HashSet, HashMap etc.) incluindo HashMap porque eles fornecem o esperado O(1) obter e contém tempo.

Pode ser útil quando você tiver um Map o que não é um HashMap (por exemplo. Properties) e você sabe que ele será grande e que você lerá muitas vezes, é útil mudar para uma implementação diferente de um Map.

Documentação:

public HashMap(Map<? extends K,? extends V> m)

Constrói um novo HashMap com os mesmos mapeamentoscomo o mapa especificado. O HashMap é criado com o fator de carga padrão (0,75) e uma capacidade inicial suficiente para manter os mapeamentos no mapa especificado.

Parâmetros:

m - o mapa cujos mapeamentos devem ser colocados neste mapa

Lança:

NullPointerException - se o mapa especificado for nulo