Golang——map集合初始化、键值操作、map作为函数参数的使用
- map是一种
无序
的键值对集合,键是不允许重复
的,map是通过hash实现的- map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值
- 引用类型不能作为key
map的创建:
格式1:
var map名称 map[key的类型]value的类型
格式2:
map名称 := map[key的类型]value的类型{}
格式3:
map名称 := make(map[key的类型]value的类型)
演示:
func main() {var m map[int]stringm1 := map[int]string{}m2 := make(map[int]string)fmt.Println(m)fmt.Println(m1)fmt.Println(m2)
}
map的初始化:
格式1:
var map名称 map[key的类型]value的类型 = map[key的类型]value的类型{key:value,key:value}
格式2:
map名称 := map[key的类型]value的类型{key:value,key:value}
格式3:
map名称 := make(map[key的类型]value的类型)
map名称 [key] = value
演示:
func main() {//var m map[string]string = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}// 可以简写var m = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}m1 := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}m2 := make(map[string]string)m2["打野"] = "露娜"m2["中路"] = "不知火舞"m2["射手"] = "马可波罗"fmt.Println(m)fmt.Println(m1)fmt.Println(m2)
}
map键值操作:
格式 | 作用 |
---|---|
map名称[键]
|
通过key获取值 |
value,ok := map[key]
|
判断key是否存在 |
delete(map名称,键)
|
通过key删除value |
演示:
func main() {m := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}fmt.Println(m["打野"])value, key := m["打野2"]if key { fmt.Println(value)} else {fmt.Println("key不存在")}for key, value := range m {fmt.Println(key, value)}delete(m, "打野")fmt.Println(m)
}
map作为函数参数:
在函数中修改map的值,会影响到原来的map
创建格式格式:
func 函数名 (map){函数体
}
调用格式:
函数名(map)
演示:
func main() {m := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}mapDemo(m)fmt.Println("修改后main中打印:", m)
}func mapDemo(m map[string]string) {fmt.Println("修改前:", m)delete(m, "打野")fmt.Println("修改后mapDemo中打印:", m)
}
输出:
修改前: map[中路:不知火舞 射手:马可波罗 打野:露娜]
修改后mapDemo中打印: map[中路:不知火舞 射手:马可波罗]
修改后main中打印: map[中路:不知火舞 射手:马可波罗]
统计字母出现的次数:
思路:
定义map,键盘录入的字母作为map的key,统计的次数作为map的value,循环遍历
func mapDemo() {fmt.Println("请输入要统计的字母:")// 定义统计次数的变量var str stringfmt.Scan(&str)m := make(map[byte]int)for i := 0; i < len(str); i++ {// 定义变量s作为map的keys := str[i]// 通过key获取值 int类型初始值为0,相同则+1作为新的valuem[s] += 1}fmt.Println("统计的字符次数为:\n\n")// 遍历for key, value := range m {fmt.Printf("%c:%d\n", key, value)}
}
Golang——map集合初始化、键值操作、map作为函数参数的使用相关推荐
- 遍历Map集合的键值对
方法一: import java.util.*; public class test2 {public static void main(String[] args) {Map<String, ...
- java 顺序存储键值对_java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)...
import java.util.*; public class Person implements Comparable//使Person的属性具有比较性 { private String name ...
- java基础—Map集合的常见方法操作(java集合八)
Map集合的常见方法操作 Map集合中的元素取出并打印的三种方式 import java.util.Collection; import java.util.HashMap; import java. ...
- java——集合——Map集合——Map集合遍历键找值方式
Map集合遍历键找值方式 Map集合的第一种遍历方式:通过键找值的方式 Map集合中的方法: SetkeySet() 返回此映射中包含的键的 Set 视图. 实现步骤: 1.使用Map集合中的方法ke ...
- 【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )
文章目录 一. Dart 数据类型 Map 类型 二. Map 类型初始化并赋值 1. 创建 Map 对象同时进行初始化操作 2. 先创建 Map 对象再进行赋值 三. Map 集合遍历 1. 使用 ...
- 通过Value获取Map中的键值Key的四种方法
1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...
- Java程序创建Map集合,创建Emp对象,并将Emp对象添加到集合中(Emp对象的id作为Map集合的键),并将id为015的对象从集合中移除。
package javase14; /* Emp对象的id作为Map集合的键 */ public class Emp {private String e_id;private String e_nam ...
- 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )
文章目录 一.使用 map 集合的 find 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 find 方法遍历 map 集合 使用 map 集合的 find 方法遍历 map 集合 ...
- 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )
文章目录 一.使用 map 集合的 each 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 each 方法遍历 map 集合 遍历 map 集合 , 可以调用 map 集合的 eac ...
最新文章
- 【推荐】微服务分布式企业框架Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis
- YbtOJ#20081-[NOIP2020模拟赛B组Day8]树上排列【组合数,树形dp】
- wcf rest系列文章
- 组织在召唤:如何免费获取一个js.org的二级域名
- python小白从哪来开始-小白学python(1)——从selenium开始
- 所有for循环都可以用while循环改写python_python-for循环与while循环
- java反编译工具jd-gui下载与使用
- IDEA取消双击shift出现的搜索框
- springboot session超时时间
- Android增量更新
- IP地址被屏蔽怎么解决
- Cause: java.io.IOException: Could not find resource com/itheima/po/CustomerMapper.xml
- 你的网名OUT了吗?盘点那些曾经超in的网名
- MySQL导入数据遇到Error Number: 1467 Failed to read auto-increment value from storage engine错误
- QQ2010登录协议分析-目前可取得sessionkey
- 检查网络是否畅通的四个步骤
- 分布式之线上监控工具CAT
- 高德地图各种摄像头图标_高德地图Overlay的应用以及照相功能的实现
- Cesium测量工具,距离测量、面积测量、高度测量
- 【OSPF-一类router、二类network】(根据lsdb画出拓扑)
热门文章
- linux redis 启动用户,redis 进程使用root用户启动 -- 整改方案
- html+字体图标找不到字体,bootstrap中不显示字体图标问题怎么解决?
- 分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件
- MySQL 数据库恢复
- 存储过程双层循环_别出心裁,为锂金属负极贴上“双层保护膜”!
- jenkins ssh 远程部署_Jenkins部署jar到远程服务器
- 印刷 计算机控制系统,陶瓷印刷计算机直接制版控制系统设计与实现
- python中读取txt文件、统计其中所有字母出现的频度_Python编程小技巧:如何统计序列中元素的出现频度...
- python如何实现模拟登录_超详细的Python实现新浪微博模拟登陆(小白都能懂)
- div展示html文本,html – 使文本适合div