码迷,mamicode.com
首页 > 其他好文 > 详细

golang slice去重

时间:2019-05-09 17:07:02      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:cas   turn   一个   highlight   imp   pre   append   code   aaa   

golang内没有类似python中集合的数据结构,所以去重这样的运算只能自己造轮子了。

随手写了两个示例,一个是string类型的,一个是int类型的

package main

import "fmt"

func main()  {
	s1 := []string{"111", "aaa", "bbb", "ccc", "aaa", "ddd", "ccc"}
	ret := RemoveReplicaSliceString(s1)
	fmt.Println(ret)
	s2 := []int{1 ,2 ,5, 2, 3}
	ret2 := RemoveReplicaSliceInt(s2)
	fmt.Println(ret2)
}


func RemoveReplicaSliceString(slc []string) []string {
	/*
	slice(string类型)元素去重
	*/
	result := make([]string, 0)
	tempMap := make(map[string]bool, len(slc))
	for _, e := range slc{
		if tempMap[e] == false{
			tempMap[e] = true
			result = append(result, e)
		}
	}
	return result
}

func RemoveReplicaSliceInt(slc []int) []int {
	/*
	slice(int类型)元素去重
	*/
	result := make([]int, 0)
	tempMap := make(map[int]bool, len(slc))
	for _, e := range slc{
		if tempMap[e] == false{
			tempMap[e] = true
			result = append(result, e)
		}
	}
	return result
}
输出:
[111 aaa bbb ccc ddd]
[1 2 5 3]

golang slice去重

标签:cas   turn   一个   highlight   imp   pre   append   code   aaa   

原文地址:https://www.cnblogs.com/walkerwang731/p/10839459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!