| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 学习笔记-Kotlin(4) -> 正文阅读 |
|
[移动开发]学习笔记-Kotlin(4) |
目录 集合List、Set和Map类型的变量分为两类。只读和可变? 1.List1.1.list创建与元素获取????????getOrElse是一个安全索引取值函数,它需要两个参数。第一个参数:索引值;第二个参数:能提供默认值的lambda表达式,如果索引值不存在,就用默认值来代替异常奔溃 ????????getOrNull是另一个安全索引取值函数,如果不存在就会返回返回空,而不是抛出异常。 只读list用listOf函数,可写的list用mutableListOf函数 ? ? ? ? kotlin支持使用toList和toMutableList函数动态实现只读列表可写列表的转换。
运行结果:jun 1.2.mutator函数? ? ? ? 能修改可变列表的函数统一名称为:mutator函数。与java不同的是kotlin可以使用+=、-=直接操作list,来实现增加、删除元素。可以基于lambda表达式指定条件删除元素:removeIf
运行结果:[jack, cheng] 1.3.集合遍历? ? ? ? for in遍历 一个参数:item ? ? ? ? forEach遍历 一个参数:item ? ? ? ? forEachIndexed遍历 两个参数:1.index 2.item
运行结果:jack,hua,wang, 1.4.结构
? ? ? ? _下划线表示不要此变量,就不会去声明了。字节码中可以看到:
? ? ? ? 其中没有对下划线进行一个初始化和声明 2.Set?????????和list相似。不同点java和kotlin相同,set无法有相同元素,list可以有相同元素。 ? ? ? ? 和list相似的方法就不多说了 如:setOf、mutableSetOf和mutator等等函数。
运行结果:?[jack, wang, hua] 2.1.List和Set转换? ? ? ? list.toSet()转换成Set,同时去除重复元素 ? ? ? ? set.toList()转换成list ? ? ? ? 有时我们就是想要List,只是想要去除重复而已。初学者的我想到的是list.toSet().toList(),笑死了,这样太不好看了,kotlin有一个list.distinct()函数,去除重复。相信会数据库的小伙伴,知道distinct的含义了。
运行结果:mutableListOf: [jack, jack, hua] 3.Map3.1.Map的创建? ? ? ? mapOf、mutableMapOf 有了上边的例子大家应该就知道它俩的作用了,前者是可读,后者是可写。
? ? ? ? ?to看上去是关键字,但事实上是省略了点号和参数的特殊函数,to将它左边和右边的值转换成一对Pair,看到下边的例子,你就能理解了。
? ? ? ? 这两者是相同的 3.2.读取Map的值?? ? ? ? []:读取键对应的值 ? ? ? ? getValue:读取键对应的值,不存在抛出异常 ? ? ? ? getOrElse:读取键对应的值,不存在使用匿名函数返回的默认值 ? ? ? ? getOrDefault:读取键对应的值,不存在返回默认值
运行结果:?[]: 28 3.3.map遍历
运行结果:jack:28|hua:24|jun:23| ? ? ? ? 两个foreach在于,我们有没有给其变量名,没有给编译器给我们提供了it表示当前项。 3.4.可变集合、mutator、getOrPut? ? ? ? 可变集合用mutableMapOf前面说过了,mutator函数对于map来讲也是可以使用操作的,其中getOrPut说一说:它也是获取当前键对应的值,但是如果所get的键不存在就添加进map中。
运行结果:{jack=28, wang=24, cheng=28, zhang=31} |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 23:37:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |