Le langage Go est un langage statique fortement typé, connu sous le nom de « langage C de l'ère Internet ». Dans la bibliothèque standard du langage Go, map est une structure de données très couramment utilisée, souvent utilisée pour stocker des paires clé-valeur. La carte peut être créée à l'aide de la fonction make et fournit des méthodes de fonctionnement riches. Cependant, à mesure que le nombre d'éléments dans la carte augmente, la mémoire occupée par celle-ci deviendra de plus en plus grande. Si elle n'est pas contrôlée, l'utilisation de la mémoire du programme peut être trop élevée. Cet article présentera plusieurs méthodes pour implémenter la déduplication de carte Golang afin de vous aider à mieux contrôler la mémoire du programme.
Pour supprimer les éléments spécifiés dans la carte, vous devez utiliser la fonction de suppression intégrée. Cependant, dans les situations où tous les éléments de la carte doivent être dédupliqués, nous pouvons réaliser une déduplication de carte en parcourant la carte et en comptant le nombre d'éléments.
Le processus spécifique est le suivant :
L'exemple de code est le suivant :
func removeDuplicate(m map[string]string) map[string]string { counts := make(map[string]int) for _, v := range m { counts[v] += 1 } res := make(map[string]string) for k, v := range m { if counts[v] == 1 { res[k] = v } } return res }
Une autre façon de dédupliquer la carte Golang consiste à utiliser slice comme stockage auxiliaire. Le processus est le suivant :
L'exemple de code est le suivant :
func removeDuplicate(m map[string]string) []string { res := make([]string, 0, len(m)) temp := make(map[string]bool) for _, v := range m { if _, ok := temp[v]; !ok { temp[v] = true res = append(res, v) } } return res }
L'utilisation de struct pour filtrer est également l'un des moyens de réaliser la déduplication de carte. Les étapes spécifiques sont les suivantes :
L'exemple de code est le suivant :
func removeDuplicate(m map[string]string) map[string]struct{} { res := make(map[string]struct{}, len(m)) for _, v := range m { res[v] = struct{}{} } return res }
Les trois méthodes ci-dessus pour implémenter la déduplication de carte Golang, à savoir le parcours et le comptage, l'utilisation de slice comme stockage auxiliaire et l'utilisation de struct pour le filtrage. Lorsque vous utilisez la carte, veillez à contrôler le nombre d'éléments pour éviter une utilisation excessive de la mémoire et affecter les performances du programme. J'espère que cet article vous sera utile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!