本文以go語言中的slice為例,為大家分析go語言中實現(xiàn)slice去重的方法。閱讀完整文相信大家對go語言中實現(xiàn)slice去重的方法有了一定的認識。
創(chuàng)新互聯(lián)公司網(wǎng)站建設提供從項目策劃、軟件開發(fā),軟件安全維護、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務,主營業(yè)務為成都網(wǎng)站建設、成都網(wǎng)站制作,app軟件開發(fā)公司以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。創(chuàng)新互聯(lián)公司深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
合并兩個整型slice,返回沒有重復元素的切片,有兩種去重策略
1. 通過雙重循環(huán)來過濾重復元素(時間換空間)
// 通過兩重循環(huán)過濾重復元素 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 : 這里為了節(jié)省內(nèi)存,使用map[int]byte。 因為map的value并沒有用到,所以什么類型都可以。
以上就是go語言中實現(xiàn)slice去重的方法介紹,詳細使用情況還得要大家自己使用過才能知道具體要領。如果想閱讀更多相關內(nèi)容的文章,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標題:go語言中實現(xiàn)slice去重的方法
分享網(wǎng)址:http://jinyejixie.com/article4/ghohie.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、域名注冊、網(wǎng)站建設、網(wǎng)站收錄、網(wǎng)站設計、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)