Heim >Backend-Entwicklung >Golang >Wie finde ich einzigartige Elemente in einem Go-Slice oder -Array?

Wie finde ich einzigartige Elemente in einem Go-Slice oder -Array?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 04:16:271005Durchsuche

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

Einzigartige Elemente in einem Slice oder Array finden

In Go kann das Verwalten einzigartiger Elemente in einem Slice oder Array für Neulinge eine Herausforderung sein. Dieser Leitfaden befasst sich mit dem Problem und bietet sowohl eine manuelle Vergleichsmethode als auch eine satzbasierte Alternative.

Manuelle Vergleichsmethode

Die manuelle Vergleichsmethode beinhaltet das Durchlaufen des Arrays und jedes Element mit jedem anderen Element vergleichen. Wenn ein Duplikat gefunden wird, wird es übersprungen. Hier ist ein optimiertes Beispiel:

<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>

Set-basierte Alternative

Go stellt die Kartendatenstruktur bereit, die als Set verwendet werden kann. Eine Karte mit Schlüsseln vom Typ „visit“ und Werten vom Typ „bool“ kann eine praktische Möglichkeit sein, eindeutige Werte beizubehalten. Hier ist ein Beispiel:

<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>

Ausgabe

Beide Methoden geben das gleiche Ergebnis aus:

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

Wählen Sie die Methode, die am besten zu Ihnen passt spezifische Umsetzungsanforderungen. Die manuelle Vergleichsmethode bietet eine detaillierte Kontrolle über Elementvergleiche, während die satzbasierte Methode Einfachheit und Effizienz bietet.

Das obige ist der detaillierte Inhalt vonWie finde ich einzigartige Elemente in einem Go-Slice oder -Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn