Comment supprimer efficacement les valeurs en double des tranches dans Go
Les nouveaux arrivants sont souvent confrontés au défi de supprimer les valeurs en double des tranches. Bien que parcourir la tranche et vérifier manuellement les doublons puisse sembler une approche viable, elle est inefficace. Cet article présente des solutions optimales pour supprimer les doublons de manière générique et spécifiquement pour les chaînes et les entiers.
Solution générique
La fonction générique suivante utilise une carte pour garder une trace des éléments uniques et ajoutez-les en conséquence :
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 Solution
Pour une efficacité améliorée, une solution spécifique à une chaîne peut être utilisée :
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 }
Solution spécifique à un entier
De même, une solution spécifique aux entiers offre en outre optimisation :
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 }
Utilisation
Ces fonctions peuvent être utilisées en passant la tranche contenant des valeurs en double et en recevant une nouvelle tranche avec uniquement les éléments uniques :
// Sample usage cities := []string{"Mumbai", "Delhi", "Ahmedabad", "Mumbai", "Bangalore", "Delhi", "Kolkata", "Pune"} uniqueCities := removeDuplicate(cities)
Conclusion
Les solutions présentées fournissent des méthodes optimales pour supprimer les valeurs en double des tranches dans Allez-y, permettant un code efficace et des performances optimales.
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!