Maison > développement back-end > Golang > Comment supprimer les doublons des tranches dans Golang

Comment supprimer les doublons des tranches dans Golang

(*-*)浩
Libérer: 2019-12-28 09:55:53
original
3878 Les gens l'ont consulté

Comment supprimer les doublons des tranches dans Golang

Fusionner deux tranches entières et renvoyer une tranche sans éléments en double. Il existe deux stratégies de déduplication

1. filtrer les éléments en double (le temps est échangé contre de l'espace) (apprentissage recommandé : go)

// 通过两重循环过滤重复元素
func RemoveRepByLoop(slc []int) []int {
    result := []int{}  // 存放结果
    for i := range slc{
        flag := true
        for j := range result{
            if slc[i] == result[j] {
                flag = false  // 存在重复元素,标识为false
                break
            }
        }
        if flag {  // 标识为false,不添加进结果
            result = append(result, slc[i])
        }
    }
    return result
}
Copier après la connexion

2. Filtrer via le dictionnaire (l'espace est échangé contre du temps)

.

La clé primaire du dictionnaire étant unique, elle peut être utilisée pour déterminer si les éléments sont répétés

// 通过map主键唯一的特性过滤重复元素
func RemoveRepByMap(slc []int) []int {
    result := []int{}
    tempMap := map[int]byte{}  // 存放不重复主键
    for _, e := range slc{
        l := len(tempMap)
        tempMap[e] = 0
        if len(tempMap) != l{  // 加入map后,map长度变化,则元素不重复
            result = append(result, e)
        }
    }
    return result
}
Copier après la connexion

ps : Afin d'économiser de la mémoire, map[int]byte est utilisé ici. La valeur de map n’étant pas utilisée, n’importe quel type peut être utilisé.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal