之前我们学习了常用的集合和数组,它们创建的方式、如何获取元素以及遍历的方式,一般来说创建数据结构都可以使用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集合相关推荐

  1. 【2023最新】Kotlin基础教程 Kotlin Basics 2 第二阶段:Sold! 2.4 【信息单位】Units of information

    [2023最新]Kotlin基础教程 Kotlin Basics 文章目录 [2023最新]Kotlin基础教程 Kotlin Basics 2 第二阶段:Sold! 2.4 [信息单位]Units ...

  2. Python基础教程:set集合的教程

    一.集合类型 集合是一组无序排列的可哈希的值(可哈希的值->不可变),集合成员可以做字典中的键.但集合本身是不可哈希的. 集合是无序没有索引,也没有像字典的key,所以集合不能更改元素.只能增删 ...

  3. kotlin基础教程:<3>函数的高级用法和字符串的基础操作

    大家都知道函数的功能强大,在Java,有构造函数,静态函数,自定义的函数,自带的函数,反正很多函数,上一期我们讲解了一下Java以及kotlin函数的一个格式,kotlin的函数是由作用域,fun关键 ...

  4. Kotlin基础教程

    文章目录 简介与安装 变量和算术 函数 条件表达式 循环语句 when表达式 简介与安装 Kotlin自从17年开始就成了谷歌认证的安卓官方开发语言.Kotlin虽然也是运行在Java虚拟机中的语言, ...

  5. Kotlin基础教程-异常

    异常 异常类 基类: Exception 抛出异常: throw MyException("Hi There!") 捕获异常 try {// some code } catch ( ...

  6. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 find 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 find 方法遍历 map 集合 使用 map 集合的 find 方法遍历 map 集合 ...

  7. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 each 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 each 方法遍历 map 集合 遍历 map 集合 , 可以调用 map 集合的 eac ...

  8. 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )

    文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...

  9. Kotlin基础学习 09

    目录 1.Kotlin语中的Map的创建 2.Kotlin语中的读取Map的值 3.Kotlin语言遍历Map学习 4.Kotlin语言的可变Map集合学习 5.Kotlin语言定义类与field关键 ...

最新文章

  1. 即构推出小程序连麦直播方案,与iOSAndroid APP互通连麦!
  2. centos上mysql
  3. Python笔记(6) 数字
  4. Oracle分区表之创建维护分区表索引的详细步骤
  5. 乐视网1354项商标1.3亿元成交,接盘的是这家公司
  6. oracle数据库,使用plsql导出表数据缺少空表
  7. SeaChest Utilities 工具,让你的硬盘功耗又低又长寿
  8. JS前端实现是否繁体判断,简繁体转换,简体和QQ个性繁体转换
  9. 【拿到offer】2020农业银行校园秋季招聘面试心得
  10. 【设计图交接与沟通的高效平台】上海道宁为设计师与开发者提供产品团队的互联空间——Zeplin
  11. linux tig不支持中文,颠覆 Git 命令使用体验的神器 -- tig
  12. 【Linux】su 和 sudo 命令
  13. 我所理解的羽毛球运动(没有教练业余羽毛球如何让自己提高?)
  14. php fpm iamp,基于IAMP的WEB安全模型
  15. js通过字节长度截取中英文混合字符串
  16. 手机病毒肆虐:恶意软件每天获取超3000美元收益
  17. 赫兹 (单位) Hz
  18. 编写程序,输入城市名和数量,按字母顺序输出城市名清单。
  19. 正则筛选图片url(js)
  20. Git-骚操作-批量删除分支

热门文章

  1. ubuntu挂载Nas及磁盘测速
  2. 《西瓜书》笔记整理——第一章
  3. python自动抢购dmall_一个简易的自动抢购脚本
  4. 莫烦Python--Tensorflow Day2
  5. Vue3 究竟好在哪里?(和 React Hook 的详细对比)
  6. User’s Guide
  7. 机器学习——长短期记忆(LSTM)
  8. 嵌入式入门学习笔记6:[转]嵌入式开发需要学习哪些东西
  9. 十五、存储过程与函数
  10. 程序员版孔乙己(故事小篇)