Heim > Artikel > Backend-Entwicklung > So entfernen Sie Duplikate aus Slices in Golang
Zwei Ganzzahl-Slices zusammenführen und ein Slice ohne doppelte Elemente zurückgeben. Es gibt zwei Deduplizierungsstrategien
1 Filtern Sie doppelte Elemente (Zeit wird gegen Raum ausgetauscht) (empfohlenes Lernen: 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 }
2. Durch Wörterbuch filtern (Raum wird gegen Zeit ausgetauscht)
Da der Primärschlüssel des Wörterbuchs eindeutig ist, kann er verwendet werden, um zu bestimmen, ob Elemente wiederholt werden.
// 通过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 }
ps: Um Speicher zu sparen, wird hier map[int]byte verwendet. Da der Wert von „map“ nicht verwendet wird, kann jeder Typ verwendet werden.
Das obige ist der detaillierte Inhalt vonSo entfernen Sie Duplikate aus Slices in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!