Golang 利用 Map 实现去重与 set 的功能

假设现在有一个需求,将以下 url 保存起来,要求不重复

www.baidu.com
www.sina.com.cn
www.hao123.com
www.baidu.com
www.hao123.com

可以利用 map 的 key 唯一性的问题处理

package main

var set = map[string]bool {

}

func main() {
    ...
    url := xxx
    if set[url] {
        // 表示集合中已经存在
        return
    }

    set[url] = true           // 否则如果不存在,设置为true
}

// 完成后,set的所有的key值为不重复的值

在此之前,需要确定 golang 支持的 map 的 key 数量,可以手写暴力写入测试

package main 

import (
	"fmt"
)

var test = map[int]int {

}

func main() {
	for i := 0; i < 10000000; i++ {        // 测试对1000万key的支持,完美支持
		fmt.Println(i)
		test[i] = i
	}
}

 

你可能感兴趣的:(Golang)