Maison  >  Article  >  développement back-end  >  Comment trouver des éléments uniques dans une tranche ou un tableau Go ?

Comment trouver des éléments uniques dans une tranche ou un tableau Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 04:16:27919parcourir

How to Find Unique Items in a Go Slice or Array?

Trouver des éléments uniques dans une tranche ou un tableau

Dans Go, conserver des éléments uniques dans une tranche ou un tableau peut être un défi pour les nouveaux arrivants. Ce guide aborde le problème en proposant à la fois une méthode de comparaison manuelle et une alternative basée sur un ensemble.

Méthode de comparaison manuelle

La méthode de comparaison manuelle implique de parcourir le tableau et vérifier chaque élément par rapport à tous les autres éléments. Si un doublon est trouvé, il est ignoré. Voici un exemple optimisé :

<code class="go">visited := []visit{
    visit{1, 100},
    visit{2, 2},
    visit{1, 100},
    visit{1, 1},
}
unique := map[visit]bool{}

for _, v := range visited {
    unique[v] = true
}

var uniqueVisits []visit
for v := range unique {
    uniqueVisits = append(uniqueVisits, v)
}

fmt.Println(uniqueVisits)</code>

Alternative basée sur un ensemble

Go fournit la structure de données cartographiques qui peut être utilisée comme un ensemble. Une carte avec des clés de type visit et des valeurs de type bool peut être un moyen pratique de conserver des valeurs uniques. Voici un exemple :

<code class="go">visited := []visit{
    visit{1, 100},
    visit{2, 2},
    visit{1, 100},
    visit{1, 1},
}
unique := map[visit]bool{}

for _, v := range visited {
    if !unique[v] {
        unique[v] = true
    }
}

var uniqueVisits []visit
for v := range unique {
    uniqueVisits = append(uniqueVisits, v)
}

fmt.Println(uniqueVisits)</code>

Sortie

Les deux méthodes produiront le même résultat :

[visit{1 100} visit{2 2} visit{1 1}]

Choisissez la méthode qui convient le mieux à votre exigences spécifiques de mise en œuvre. La méthode de comparaison manuelle offre un contrôle précis sur les comparaisons d'éléments, tandis que la méthode basée sur des ensembles offre simplicité et efficacité.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn