example01:因为map是无序的,返回的结果随机,可以通过slice,然后进行sort进行排序。
package main
import (
"fmt"
"sort"
)
func testMapSort() {
var a map[int]int
a = make(map[int]int,5)
a[8] = 10
a[3] = 10
a[11] = 10
a[1] = 10
a[22] = 10
fmt.Println(a)
var keys []int
for k,_ := range a{
keys = append(keys,k)
fmt.Println(keys)
}
sort.Ints(keys)
for _,v := range keys{
fmt.Println(v,a[v])
}
}
func main() {
testMapSort()
}
运行结果:
PS F:\go\src\go_dev> .\main.exe
map[8:10 3:10 11:10 1:10 22:10]
[8]
[8 3]
[8 3 11]
[8 3 11 1]
[8 3 11 1 22]
1 10
3 10
8 10
11 10
22 10
PS F:\go\src\go_dev>
PS F:\go\src\go_dev>
PS F:\go\src\go_dev>
PS F:\go\src\go_dev> .\main.exe
map[8:10 3:10 11:10 1:10 22:10]
[22]
[22 8]
[22 8 3]
[22 8 3 11]
[22 8 3 11 1]
1 10
3 10
8 10
11 10
22 10
PS F:\go\src\go_dev>
example02:数组的翻转。
解题思路:定义连个数组,然后进行初始化,赋值之后,用range取出index和value,最后交换值。
package main
import (
"fmt"
)
func testMapSort() {
var a map[string]int
var b map[int]string
a = make(map[string]int,5)
b = make(map[int]string,5)
a["abc"] = 123
a["efg"] = 456
for k,v := range a{
b[v]=k
}
fmt.Println(a)
fmt.Println(b)
}
func main() {
testMapSort()
}
运行结果:
PS F:\go\src\go_dev> .\main.exe
map[abc:123 efg:456]
map[123:abc 456:efg]
PS F:\go\src\go_dev>