Heim > Backend-Entwicklung > Golang > Wie entferne ich doppelte Werte effizient aus Go-Slices?

Wie entferne ich doppelte Werte effizient aus Go-Slices?

Susan Sarandon
Freigeben: 2024-12-18 10:25:10
Original
467 Leute haben es durchsucht

How to Efficiently Remove Duplicate Values from Go Slices?

So entfernen Sie doppelte Werte effizient aus Slices in Go

Einsteiger in Go stehen oft vor der Herausforderung, doppelte Werte aus Slices zu entfernen. Das Durchlaufen des Slice und die manuelle Suche nach Duplikaten mag zwar wie ein praktikabler Ansatz erscheinen, ist aber ineffizient. In diesem Artikel werden optimale Lösungen zum Entfernen von Duplikaten im Allgemeinen und speziell für Zeichenfolgen und Ganzzahlen vorgestellt.

Generische Lösung

Die folgende generische Funktion verwendet eine Karte, um den Überblick über die eindeutigen Elemente zu behalten und hängen Sie sie entsprechend an:

func removeDuplicate[T comparable](sliceList []T) []T {
    allKeys := make(map[T]bool)
    list := []T{}
    for _, item := range sliceList {
        if _, value := allKeys[item]; !value {
            allKeys[item] = true
            list = append(list, item)
        }
    }
    return list
}
Nach dem Login kopieren

String-Specific Lösung

Für eine verbesserte Effizienz kann eine stringspezifische Lösung verwendet werden:

func removeDuplicateStr(strSlice []string) []string {
    allKeys := make(map[string]bool)
    list := []string{}
    for _, item := range strSlice {
        if _, value := allKeys[item]; !value {
            allKeys[item] = true
            list = append(list, item)
        }
    }
    return list
}
Nach dem Login kopieren

Ganzzahlspezifische Lösung

Ähnlich gilt: Eine ganzzahlspezifische Lösung bietet weitere Möglichkeiten Optimierung:

func removeDuplicateInt(intSlice []int) []int {
    allKeys := make(map[int]bool)
    list := []int{}
    for _, item := range intSlice {
        if _, value := allKeys[item]; !value {
            allKeys[item] = true
            list = append(list, item)
        }
    }
    return list
}
Nach dem Login kopieren

Verwendung

Diese Funktionen können verwendet werden, indem das Slice mit doppelten Werten übergeben und ein neues Slice nur mit den eindeutigen Elementen empfangen wird:

// Sample usage
cities := []string{"Mumbai", "Delhi", "Ahmedabad", "Mumbai", "Bangalore", "Delhi", "Kolkata", "Pune"}
uniqueCities := removeDuplicate(cities)
Nach dem Login kopieren

Fazit

Die vorgestellten Lösungen bieten optimale Methoden zum Entfernen doppelter Werte aus Slices in Go, was effizienten Code und optimale Leistung ermöglicht.

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Werte effizient aus Go-Slices?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage