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 }