kotlin基础教程:<6>map集合
之前我们学习了常用的集合和数组,它们创建的方式、如何获取元素以及遍历的方式,一般来说创建数据结构都可以使用kotlin的类型推导来简化代码:
//可变的,注意后面的mutable首字母小写val list2: MutableList<String> = mutableListOf<String>("孙悟空","猪八戒","沙和尚")//1.2 简化写法/*因为kotlin的类型推导,我们完全可以使用简化写法来节省代码val list1 = listOf("孙悟空","猪八戒","沙和尚")val list2 = mutableListOf("孙悟空","猪八戒","沙和尚")*/
获取的话可以使用[]的方式等等,遍历就可以想到增强for和foreach,当然不同的数据结构具有不同的遍历特点,需要我们注意区分;
之前我们学习了list集合和array数组,还有一个常用的结合叫做map集合,跟前面两者不同,它用来存储键值对,相信学过编程相关的都是到这个结构,安卓里面常用它来存储用户名和头像;那么这一期我们就来看一看kotlin是如何创建map以及它的一些性质:
有时候我们想要存储一些键值来实现功能,就可以使用map集合:
1、创建,含有可变和不可变map,和前面的集合是一样的,通过类型推导来简化代码也是可以的:
//3.1 map集合的基本使用/** 创建,同样的,map也是具有可变和不可变两种类型* map是用来存储键值对的数据,所以我们在创建的时候* 使用key to value或者Pair(key,value)的方式* 传入我们需要的数据;而且map的创建也可以使用类型推* 导来实现简化代码* *///不可变,使用mapof创建,原始写法val map1: Map<String,Int> = mapOf<String,Int>("Tony" to 1,"Jerry" to 2,Pair("Tom",3))//可变,mutableMapOf创建,简化写法val map2 = mutableMapOf("Tony" to 1,"Jerry" to 2,Pair("Tom",3))println(map1)println(map2)
创建想要的不可变集合就是(集合of)的方式,创建可变的就是(mutable集合of)的方式;
2、获取到map中的元素,获取到value值的方式很多种,也有Java中的get,而且不会因为数据不存在而崩溃,但是getvalue就是,所以不推荐使用:
//3.2 获取到元素,map含有四种方式//利用运算符重载的方式[],等价于get方式println(map1["Tony"])println(map1.get("Tony"))//我们可以设置没有拿到元素时的默认值,getOrDefault如果有就会拿到println(map1.getOrDefault("Tony2", -1))//还可以使用来设置没有拿到数据的时候返回的整型数据println(map1.getOrElse("Tony1") { -1 })//最后一种方式是不推荐的,因为其会出现数据不存在是程序崩溃的情况println(map1.getValue("Tony"))
3、遍历map,无非就是foreach和增强for,这是用来遍历数据结构最多的方式:
//3.3 map的遍历,也具有四种方式//使用foreach,只有一个参数it覆盖println()map1.forEach{print("${it.key} ${it.value} ")}println()//使用foreach,具有两个参数覆盖itmap1.forEach{key,value -> print("${key} ${value} ")}println()//使用foreach,将键和值放在一起map1.forEach{(k,v)->print("${k} ${v} ")}println()//使用增强forfor (entry in map1) {print("${entry.key} ${entry.value} ")}println()
4、对可变map的增删操作:
//3.4 可变map的增删操作//使用运算符重载,可以添加(+=)也可以删除(-=)map2 += "aaa" to 123//使用[]赋值操作,如果没有这个key就会创建一个map2["bbb"] = 888//使用put内置函数map2.put("CCC",999)//使用getorput,如果map中含有该key将会直接返回value,没有则创建map2.getOrPut("fff"){555}println(map2)
在kotlin里面有一个运算符重载的功能,也是为了简化代码用的,常用在一个增删数据的时候,一般就是+=添加数据,-=删除数据,[]获取数据;
那么这一期就介绍这一个,大家务必要多练习这些数据结构,毕竟安卓开发是需要处理很多数据的。
kotlin基础教程:<6>map集合相关推荐
- 【2023最新】Kotlin基础教程 Kotlin Basics 2 第二阶段:Sold! 2.4 【信息单位】Units of information
[2023最新]Kotlin基础教程 Kotlin Basics 文章目录 [2023最新]Kotlin基础教程 Kotlin Basics 2 第二阶段:Sold! 2.4 [信息单位]Units ...
- Python基础教程:set集合的教程
一.集合类型 集合是一组无序排列的可哈希的值(可哈希的值->不可变),集合成员可以做字典中的键.但集合本身是不可哈希的. 集合是无序没有索引,也没有像字典的key,所以集合不能更改元素.只能增删 ...
- kotlin基础教程:<3>函数的高级用法和字符串的基础操作
大家都知道函数的功能强大,在Java,有构造函数,静态函数,自定义的函数,自带的函数,反正很多函数,上一期我们讲解了一下Java以及kotlin函数的一个格式,kotlin的函数是由作用域,fun关键 ...
- Kotlin基础教程
文章目录 简介与安装 变量和算术 函数 条件表达式 循环语句 when表达式 简介与安装 Kotlin自从17年开始就成了谷歌认证的安卓官方开发语言.Kotlin虽然也是运行在Java虚拟机中的语言, ...
- Kotlin基础教程-异常
异常 异常类 基类: Exception 抛出异常: throw MyException("Hi There!") 捕获异常 try {// some code } catch ( ...
- 【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 ...
- 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )
文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...
- Kotlin基础学习 09
目录 1.Kotlin语中的Map的创建 2.Kotlin语中的读取Map的值 3.Kotlin语言遍历Map学习 4.Kotlin语言的可变Map集合学习 5.Kotlin语言定义类与field关键 ...
最新文章
- 即构推出小程序连麦直播方案,与iOSAndroid APP互通连麦!
- centos上mysql
- Python笔记(6) 数字
- Oracle分区表之创建维护分区表索引的详细步骤
- 乐视网1354项商标1.3亿元成交,接盘的是这家公司
- oracle数据库,使用plsql导出表数据缺少空表
- SeaChest Utilities 工具,让你的硬盘功耗又低又长寿
- JS前端实现是否繁体判断,简繁体转换,简体和QQ个性繁体转换
- 【拿到offer】2020农业银行校园秋季招聘面试心得
- 【设计图交接与沟通的高效平台】上海道宁为设计师与开发者提供产品团队的互联空间——Zeplin
- linux tig不支持中文,颠覆 Git 命令使用体验的神器 -- tig
- 【Linux】su 和 sudo 命令
- 我所理解的羽毛球运动(没有教练业余羽毛球如何让自己提高?)
- php fpm iamp,基于IAMP的WEB安全模型
- js通过字节长度截取中英文混合字符串
- 手机病毒肆虐:恶意软件每天获取超3000美元收益
- 赫兹 (单位) Hz
- 编写程序,输入城市名和数量,按字母顺序输出城市名清单。
- 正则筛选图片url(js)
- Git-骚操作-批量删除分支