/ / Que fait le constructeur HashMap (Map m)? - java, hashmap

Que fait le constructeur HashMap (Map m)? - java, hashmap

J'ai rencontré un morceau de code où j'ai trouvé

  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);
}
}

J'aime savoir ici que lorsque le constructeur par défaut est appelé, la carte est initialisée à hashmap et lorsque addContentsToMap est appelée, une carte est formée avec des valeurs.

Je vois que returnMap utilise le constructeur de HashMap (Map m). J'ai parcouru le code source de HashMap mais je ne savais rien.

Réponses:

3 pour la réponse № 1

Il faut toute mise en œuvre de Map interface et construit un HashMap qui est aussi une mise en œuvre de Map interface.

Des développeurs comme Hash-Collections (HashSet, HashMap etc.) y compris HashMap parce qu'ils fournissent attendu O(1) obtenir et contient le temps.

Cela peut être utile, une fois que vous avez un Map ce qui n'est pas HashMap (par exemple. Properties) et vous savez qu'il sera grand et que vous le lirez plusieurs fois, il est utile de passer à une autre implémentation d'un Map.

Documentation:

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

Construit un nouveau HashMap avec les mêmes mappagescomme la carte spécifiée. La table de hachage est créée avec un facteur de charge par défaut (0,75) et une capacité initiale suffisante pour contenir les mappages dans la mappe spécifiée.

Paramètres:

m - la carte dont les cartographies doivent être placées dans cette carte

Jette:

NullPointerException - si la carte spécifiée est nulle