golang基础-排序、二分查找、map、map排序反转
来源:互联网 发布:js中alert输出变量 编辑:程序博客网 时间:2024/06/07 00:23
排序
package mainimport( "fmt" "sort")func main() { testInSort() testString() testFloat()}func testFloat(){ var a = [...]float64{12.5,455.677,236.77,-234.66,0,5.99} sort.Float64s(a[:]) fmt.Println(a)}func testString(){ var a = [...]string{"wefD","wefghn","thGw","wGGef","sfsf"} sort.Strings(a[:]) fmt.Println(a)}/*数组是值类型,如果要改变值,需要传切片进去,去改变*/func testInSort(){ var a = [...]int{1,3,5,-5,0,-4} //需要传递切片进去才能排序 sort.Ints(a[:]) fmt.Println(a)}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.go[-5 -4 0 1 3 5][sfsf thGw wGGef wefD wefghn][-234.66 0 5.99 12.5 236.77 455.677]PS E:\golang\go_pro\src\safly>
二分查找
ort.SearchInts(a []int, b int) 从数组a中查找b,前提是a必须有序
sort.SearchFloats(a []float64, b float64) 从数组a中查找b,前提是a必须有序
sort.SearchStrings(a []string, b string) 从数组a中查找b,前提是a必须有序
package mainimport( "fmt" "sort")func main() { testSearchIn()}//从数组a中查找b,前提是a必须有序func testSearchIn(){ var a = [...] int {1,8,38,2,348,484,-6} //没有排序直接进行查找 index:= sort.SearchInts(a[:],2) //输出1是错误的,因为没有排序 fmt.Println(index) //进行排序操作 sort.Ints(a[:]) fmt.Println(a) //传切片过去 index= sort.SearchInts(a[:],2) fmt.Println(index)}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.go1[-6 1 2 8 38 348 484]2PS E:\golang\go_pro\src\safly>
map
map创建方式
package mainimport( "fmt")func main() { testMap() testMoreMap()}//map嵌套func testMoreMap(){ a:= make(map[string]map[string]string,100) //value是map,使用时候需要为其开辟空间 a["k1"] = make(map[string]string) a["k1"]["k1k1"]= "aaa" fmt.Println(a)}//创建map的2种方式func testMap(){ a := make(map[string]string,10) a["abc"] = "abc" fmt.Println(a) var b map[string] string = map[string]string{ "bcd":"bcd", } fmt.Println(b)}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.gomap[abc:abc]map[bcd:bcd]map[k1:map[k1k1:aaa]]PS E:\golang\go_pro\src\safly>
map循环遍历
package mainimport( "fmt")func main() { testMap3() fmt.Println("---------------") testMap4() testMap5()}/*切片里面是map*/func testMap5() { var a []map[int]int a = make([]map[int]int, 5) if a[0] == nil { a[0] = make(map[int]int) } a[0][10] = 10 fmt.Println(a)}/*循环遍历*/func testMap4(){ a:= make(map[string]map[string]string,100) a["k1"] = make(map[string]string) a["k1"]["k2"] = "abc" a["k1"]["k3"] = "bcd" a["k2"] = make(map[string]string) a["k2"]["k4"] = "efg" a["k2"]["k5"] = "hij" for k,v := range a{ fmt.Println(k) for k1,v1:= range v{ fmt.Println(k1,v1) } } //删除 fmt.Println("-------删除前后-------") delete(a,"k1") for k,v := range a{ fmt.Println(k) for k1,v1:= range v{ fmt.Println(k1,v1) } } }func testMap3(){ a := make(map[string]map[string]string,10) modify(a) fmt.Println(a)}func modify(a map[string]map[string]string){ _,ok:=a["zhangsan"] //输出false fmt.Println(ok) if !ok { a["zhangsan"] = make(map[string]string) } a["zhangsan"]["pass"] = "123" return}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.gofalsemap[zhangsan:map[pass:123]]---------------k1k2 abck3 bcdk2k4 efgk5 hij-------删除前后-------k2k4 efgk5 hij[map[10:10] map[] map[] map[] map[]]PS E:\golang\go_pro\src\safly>
排序、反转
package mainimport( "fmt" "sort")func testMapReverse(){ var a map[int]string var b map[string] int a = make(map[int]string,5) b = make(map[string] int ,5) a[1] = "a" a[2] = "b" for k,v := range a{ b[v] = k } for k,v := range b{ fmt.Println(k,v) }}func main() { testMapSort() fmt.Println("--------") testMapReverse()}func testMapSort(){ var a map[int]int a = make(map[int]int ,8) a[1] = 10 a[2] = 11 a[3] = 12 a[4] = 13 //定义一个切片 var b []int //说明map是无序的 for k,v := range a{ fmt.Println(k,v) b = append(b,v) } sort.Ints(b) fmt.Println("----------对map的值进行排序(放到切片里面)-----------") for k,v:= range b{ fmt.Println(k,v) }}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.go1 102 113 124 13----------对map的值进行排序(放到切片里面)-----------0 101 112 123 13--------b 2a 1PS E:\golang\go_pro\src\safly>
阅读全文
0 0
- golang基础-排序、二分查找、map、map排序反转
- map排序及有条件查找
- Map排序
- map排序
- MAP排序
- Map排序
- Map排序
- map 排序
- map 排序
- map排序
- map 排序
- MAP排序
- Map排序
- map排序
- map排序
- Map 排序
- Map排序
- map排序
- html5_jquery+angular订单管理
- java语言沪深A股票数据的爬虫读取,里面可以自定义公式
- 外星人笔记本,win10专业版装不了GTX1070驱动问题解决
- AngularJs订单列表的样式
- codevs 1017 乘积最大 dfs
- golang基础-排序、二分查找、map、map排序反转
- 【nginx】 NGINX 进程通信机制
- Android Xrecyclervie,TabLayout+Fragment,综合
- cmd 切换管理员
- UVALive 7662 Perfect Matchings
- Python的web服务开发环境搭建过程
- spark on hive 写入hdfs
- Linux环境安装SonarQube,windows使用SonarQube Runner完整实例
- jrebel、JavaRebel