1 package main 2 3 import ( 4 "fmt" 5 "sort" 6 ) 7 8 func main() { 9 /* 10 map的遍历: 11 使用:for range 12 13 数组,切片:index,value 14 map:key,value 15 */ 16 17 map1 := make(map[int]string) 18 map1[1] = "红孩儿" 19 map1[2] = "小钻风" 20 map1[3] = "白骨精" 21 map1[4] = "白素贞" 22 map1[5] = "金角大王" 23 map1[6] = "王二狗" 24 25 // 1.遍历map 26 for k, v := range map1 { 27 fmt.Println(k, v) // 不一定按序输出 28 // 3 白骨精 29 // 4 白素贞 30 // 5 金角大王 31 // 6 王二狗 32 // 1 红孩儿 33 // 2 小钻风 34 } 35 36 fmt.Println("----------------------") 37 for i := 1; i <= len(map1); i++ { 38 fmt.Println(i, "--->", map1[i]) 39 } 40 41 /* 42 1.获取所有的key,-->切片/数组 43 2.进行排序 44 3.遍历key,--->map[key] 45 */ 46 47 keys := make([]int, 0, len(map1)) 48 fmt.Println(keys) // [] 49 50 for k, _ := range map1 { 51 keys = append(keys, k) 52 } 53 fmt.Println(keys) // [3 4 5 6 1 2] 54 55 //冒泡排序,或者使用sort包下的排序方法 56 sort.Ints(keys) 57 fmt.Println(keys) // [1 2 3 4 5 6] 58 59 for _, key := range keys { 60 fmt.Println(key, map1[key]) 61 } 62 63 s1 := []string{"Apple", "Windows", "Orange", "abc", "王二狗", "acd", "acc"} 64 fmt.Println(s1) // [Apple Windows Orange abc 王二狗 acd acc] 65 sort.Strings(s1) 66 fmt.Println(s1) // [Apple Orange Windows abc acc acd 王二狗] 67 }