您好,登錄后才能下訂單哦!
本文以go語言中的slice為例,為大家分析go語言中實現slice去重的方法。閱讀完整文相信大家對go語言中實現slice去重的方法有了一定的認識。
合并兩個整型slice,返回沒有重復元素的切片,有兩種去重策略
1. 通過雙重循環來過濾重復元素(時間換空間)
// 通過兩重循環過濾重復元素 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. 通過字典來過濾(空間換時間)
因為字典的主鍵唯一,所以可以用來判斷元素是否重復
// 通過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 : 這里為了節省內存,使用map[int]byte。 因為map的value并沒有用到,所以什么類型都可以。
以上就是go語言中實現slice去重的方法介紹,詳細使用情況還得要大家自己使用過才能知道具體要領。如果想閱讀更多相關內容的文章,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。