Heim >Backend-Entwicklung >Golang >Wie entferne ich doppelte Werte effizient aus 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 }
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 }
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 }
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)
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!