7. go 集合map
程序员文章站
2024-03-23 09:36:22
...
map(集合)
- Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
- Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。
- 需要注意的是
map
作为函数参数传递是 是地址传递,函数内更改map
会影响实参的值 - 除了
slice,map,function
的内建类型都可以作为key
,Struct
类型不包含上次字段,也可以作为key
。
定义 Map
- 使用
map
关键字 或者make
函数 -
map
如果不初始化,那么就会创建一个nil map
。nil map
不能用来存放键值对
/* 声明变量,默认 map 是 nil */
var map_variable map[key_data_type]value_data_type
/* 使用 make 函数 */
map_variable := make(map[key_data_type]value_data_type)
遍历map
- 使用
range
遍历key
,或者遍历key、value
键值对,不保证遍历顺序,如需顺序,需手动对key
排序。
var mMap map[string]string = map[string]string {
"a" : "this is a",
"b" : "this is b",
}
var k, v string
for k, v = range mMap {
fmt.Printf(k, v)
fmt.Println("")
}
判断 map
中是否存在指定 key
- 用value,ok:=m[key]来判断是否存在key
if v, ok :=mMap["a"]; ok {
fmt.Printf(v, ok)
} else {
fmt.Printf("ok is not exist")
}
delete() 函数
- delete() 函数用于删除集合的元素, 参数为 map 和其对应的 key。
package main
import "fmt"
func main() {
/* 创建map */
countryCapitalMap := map[string]string{"France": "Paris", "Italy": "Rome", "Japan": "Tokyo", "India": "New delhi"}
fmt.Println("原始地图")
/* 打印地图 */
for country := range countryCapitalMap {
fmt.Println(country, "首都是", countryCapitalMap [ country ])
}
/*删除元素*/ delete(countryCapitalMap, "France")
fmt.Println("法国条目被删除")
fmt.Println("删除元素后地图")
/*打印地图*/
for country := range countryCapitalMap {
fmt.Println(country, "首都是", countryCapitalMap [ country ])
}
}
// 输出结果为
/*
原始地图
India 首都是 New delhi
France 首都是 Paris
Italy 首都是 Rome
Japan 首都是 Tokyo
法国条目被删除
删除元素后地图
Italy 首都是 Rome
Japan 首都是 Tokyo
India 首都是 New delhi
*/
上一篇: 模拟多客户端进行TCP连接[Java]
推荐阅读
-
7. go 集合map
-
7. Python之元组&字典&集合
-
7.集合主讲
-
7.集合工具类
-
7.集合的包含方法
-
集合-HashMap(对象数组+链表)及Map下的其他集合
-
Velocity遍历Map集合 博客分类: Velocity velocity遍历Map详细代码
-
Velocity遍历Map集合 博客分类: Velocity velocity遍历Map详细代码
-
在java商城开发中map集合的应用 博客分类: 互联网Java hashmaptreemapjavaobject插入
-
小王说来来斗地主,但是木有牌,怎么办-------模拟斗地主洗牌和发牌 对牌进行排序 并同时使用Map,List,Set等集合