1、map简介数组
key - value 的数据结构,又叫字典或者关联数组数据结构
一、声明(声明是不会分配内存,初始化用make)app
var map1 map[key type] value type排序
var a map[string]string内存
var a map[string]intstring
var a map[int]stringit
var a map[string] map[string]stringtest
二、map相关操做遍历
func testMap(){
var a map[string]string
a = make(map[string]string,10)
a["hello"] = "world" //插入和更新操做
a["hello2"] = "world2" //插入和更新操做
Val,ok := a["hello"] //查找
if ok {
for k,v := range a {
fmt.Println(k,v)
}
}
delete(a,"hello") //删除
fmt.Println(a,Val,ok)
fmt.Println(a["hello"])
fmt.Println(len(a)) //长度
}
三、map是引用类型
func modify(a map[string]string)map[string]string{
a["hello2"] = "hello bin change"
return a
}
四、slice of map切片中包含字典
func sliceOfMap(){
items := make([]map[int]int,5)
for i := 0;i<5;i++{
items[i] = make(map[int]int)
}
fmt.Println(items)
}
五、map排序
a、先获取全部key,把key进行排序
b、按照排序好的key,进行遍历
示例:
func testMap2(){
var a map[string]string
a = make(map[string]string,10)
a["hello"] = "world" //插入和更新操做
a["hello3"] = "world3" //插入和更新操做
a["hello2"] = "world2" //插入和更新操做
fmt.Println(a)
var keys []string
for k,v := range a {
fmt.Printf("a[%s] = %s\n",k,v)
keys = append(keys,k)
}
fmt.Println("\n")
sort.Strings(keys) //对key进行排序
for _,k := range keys {
fmt.Printf("a[%s] = %s\n",k,a[k])
}
}
六、map反转
初始化另一个map,把key和value互换便可
示例:
func testMap3(){
var a map[string]string
var b map[string]string
a = make(map[string]string,10)
b = make(map[string]string,10)
a["hello"] = "world" //插入和更新操做
a["hello3"] = "world3" //插入和更新操做
a["hello2"] = "world2" //插入和更新操做
for k,v :=range a {
b[v] = k
}
fmt.Println(a)
fmt.Println(b)
}