Kotlin基础学习08
目录
1.Kotlin语言的takeUnless内置函数
2.Kotlin语言的List创建与元素获取学习
3.Kotlin语言的可变List集合学习
4.Kotlin语言的mutator学习
5.Kotlin语言的List集合遍历学习
6.Kotlin语言的解构语法过滤元素学习
7.Kotlin语言的Set创建与元素获取
8.Kotlin语言的可变Set集合
9.Kotlin语言的集合转换与快捷函数学习
10.Kotlin语中的数组类型
1.Kotlin语言的takeUnless内置函数
// TODO 55 Kotlin语言的takeUnless内置函数
// takeIf 和 takeUnless 功能是相反的
// name.takeIf {true / false} true : 返回name本身,false返回null
// name.takeUnless{true / false} false : 返回name本身,true返回null
class Manager{private var infoValue : String ?= nullfun getInfoValue()/* : String? */ = infoValuefun setInfoValue(infoValue : String){this.infoValue = infoValue}
}
fun main() {val manager = Manager()manager.setInfoValue("AAA")//小结:takeUnless+it.isNullOrBlank()一起使用,可以验证字符串有没有初始化val r = manager.getInfoValue().takeUnless { it.isNullOrBlank() } ?: "未进行初始化"println(r)
}
2.Kotlin语言的List创建与元素获取学习
// TODO 56 Kotlin语言的List创建与元素获取学习
// 普通取值方式: 索引
// 防止崩溃取值方式: getOrElse getOrNull
fun main() {val list = listOf("Bxb","ZhangSan","Lisi","Wangwu")//普通取值方式println(list[0])println(list[1])println(list[2])println(list[3])println()//我们写KT代码,一定不会出现,空指针异常,下标越界异常//防止崩溃方式,getOrElse getOrNullprintln(list.getOrElse(3) { "你越界了0" })println(list.getOrElse(4) { "你越界了1" })println(list.getOrElse(5) { "你越界了2" })println()println(list.getOrNull(1))println(list.getOrNull(4))println(list.getOrNull(111))//getOrNull + 空合并操作符println(list.getOrNull(222) ?: "你越界了3")//小结:开发过程中,尽量使用getOrElse 或者 getOrNull,才能体现KT的两点
}
3.Kotlin语言的可变List集合学习
// TODO 57 Kotlin语言的可变List集合学习
// 可变的集合
// 不可变集合 to 可变集合
// 可变集合 to 不可变集合
fun main() {//可变的集合val list = mutableListOf("Bxb","Zhangsan","Wangwu")//可变的集合,可以完成可变的操作list.add("赵六")list.remove("Wangwu")println(list)// 不可变集合 to 可变集合val list2 = listOf(123,456,789)//不可变的集合,无法完成可变的操作val list3 : MutableList<Int> = list2.toMutableList()//可变的集合,可以完成可变的操作list3.add(111)list3.remove(123)println(list3)//可变集合 to 不可变集合val list4 : MutableList<Char> = mutableListOf('A','B','C')//可变的集合,可以完成可变的操作list4.add('Z')list4.remove('A')println(list4)//可变集合转变为不可变集合val list5 : List<Char> = list4.toList()
}
4.Kotlin语言的mutator学习
// TODO 58 Kotlin语言的mutator学习
//mutator 变化,改变
//1.mutator += -= 操作
//2.removeIf
fun main() {//1.mutator += -= 操作val list : MutableList<String> = mutableListOf("Bxb","BxbAll","BxbStr","Zhangsan")list += "李四"list += "王五"list -= "Bxb"println(list)//2.removeIf//list.removeIf{ true } 如果是true 自动遍历整个可变集合,进行一个元素一个元素的删除list.removeIf{ it.contains("Bxb")} //过滤所有的元素,只要有 Bxb 的元素,就是true 删除println(list)
}
5.Kotlin语言的List集合遍历学习
// TODO 59 Kotlin语言的List集合遍历学习
fun main() {val list = listOf(1, 2, 3, 4, 5, 6)println(list) //输出list详情,这个不是遍历集合//第一种 遍历方式:for (i in list){print("元素:$i ")}println()//第二种 遍历方式:list.forEach{//it == 每一个元素print("元素:$it ")}println()//第三种 遍历方式list.forEachIndexed { index, item ->print("下标:$index,元素:$item ")}
}
6.Kotlin语言的解构语法过滤元素学习
// TODO 60 Kotlin语言的解构语法过滤元素学习
//1.集合配合解耦语法
//2.反编译看Java给三个变量赋值的代码
//3.解构屏蔽接收值
fun main() {val list: List<String> = listOf("张三", "李四", "王五")val (value1, value2, value3) = listprintln("value1:$value1,value2:$value2,value3:$value3")var (v1, v2, v3) = listv1 = "ok"println("v1:$v1,v2:$v2,v3:$v3")//用_内部可以不接受赋值,可以节约一点性能val (_, n2, n3) = list//_ 不是变量名,是用来过滤解构赋值的,不接收赋值给我println("n2:$n2,n3:$n3")
}
7.Kotlin语言的Set创建与元素获取
// TODO 60 Kotlin语言的Set创建与元素获取
//1.set 定义 不允许重复
//2.普通方式elementAt 会越界崩溃
//3.elementAtOrElse elementAtOrNull
fun main() {val set: Set<String> = setOf("123","456","123","789")println(set)//set[0] 没有这样的功能 去Set集合元素println(set.elementAt(0))println(set.elementAt(1))println(set.elementAt(2))println()//使用list 或 set 集合,尽量使用此方式,防止越界崩溃异常println(set.elementAtOrElse(0) { "越界了lelele" })println(set.elementAtOrElse(100) { "越界了lelele" })println(set.elementAtOrNull(0))println(set.elementAtOrNull(111))//OrNull + 空合并操作符 一起使用println(set.elementAtOrNull(88) ?: "yueyueyueyueyue")}
8.Kotlin语言的可变Set集合
// TODO 62 Kotlin语言的可变Set集合
fun main() {val set : MutableSet<String> = mutableSetOf("123","456")set += "147"set += "258"set -= "456"set.add("bxb")set.remove("123")println(set)
}
9.Kotlin语言的集合转换与快捷函数学习
// TODO 63 Kotlin语言的集合转换与快捷函数学习
//1.定义可变list集合
//2.List转Set 去重
//3.List转Set 转 List 也能去重
//4.快捷函数去重 distinct
fun main() {val list : MutableList<String> = mutableListOf("bxb","bxb","bxb","www","wuwuwu") //list 可以重复元素println(list)//List 转 Set 去重val set = list.toSet()println(set)//List转Set 转 List 也能去重val set2 = list.toSet().toList()println(set2)//快捷函数去重distinctprintln(list.distinct()) //内部做了:先转变成 可变的 Set 集合 再转换成 List 集合println(list.toMutableSet().toSet()) //和上面代码等价
}
10.Kotlin语中的数组类型
// TODO 64 Kotlin语中的数组类型
fun main() {//1.intArrayOf 常规操作的越界崩溃val intArray = intArrayOf(1,2,3,4,5)println(intArray[0])println(intArray[1])println(intArray[2])println()//2.elementAtOrElse elementAtOrNullprintln(intArray.elementAtOrElse(0) { -1 })println(intArray.elementAtOrElse(100) { -1 })println(intArray.elementAtOrNull(0))println(intArray.elementAtOrNull(200))//OrNull + 合并空操作符 一起来使用println(intArray.elementAtOrNull(200) ?: "你越界了")println()//3.List集合转 数组val charArray = listOf('A','B','C').toCharArray()println(charArray)//4.arrayOf Array<File>val objArray = arrayOf(File("aaa"),File("bbb"))println(objArray)}
Kotlin基础学习08相关推荐
- Kotlin基础学习(1)
Kotlin基础学习(1) 本文主要讲解kotlin的部分基础知识,并不是全部基础. 提示:纯属个人理解,如有理解错误,欢迎留言指正批评. 一.Null检查机制 kotlin对于声明可为空的参数,使用 ...
- Kotlin 基础学习
学! 原文:https://blog.csdn.net/CrazyApes/article/details/122091459 文章目录 Kotlin 线上编写 变量 lateinit延迟初始化 空安 ...
- Kotlin基础学习(一)—— Kotlin 简介
一.背景 2017年 的Google I/O大会上,Kotlin称为官方的Android开发语言. 发明公司:JetBrains(最负盛名的IDE创造者,包括Android Studio.Intell ...
- Kotlin基础学习 17
目录 1.Kotlin语言的过滤函数-filter 2.Kotlin语言的合并函数-zip 3.Kotlin语言的函数式编程 4.Kotlin语言的互操作性与可空性 5.单例模式 6.注解@Jvmna ...
- Android Kotlin基础学习 - 接口
文章目录 背景 接口定义 接口实现 实例 接口中的属性 实例 函数重写 实例 背景 学习,记录分享,坚持开源! 接口定义 Kotlin 接口与 Java 8 类似,使用 interface 关键字定义 ...
- Kotlin基础学习 09
目录 1.Kotlin语中的Map的创建 2.Kotlin语中的读取Map的值 3.Kotlin语言遍历Map学习 4.Kotlin语言的可变Map集合学习 5.Kotlin语言定义类与field关键 ...
- Kotlin基础学习 --- 内置函数apply、let
apply内置函数 fun main(){val buffer = "i am buffer "//常规方式println("buffer的字符长度是:${buffer. ...
- Kotlin基础学习(十九)—— 解构声明和组件函数
解构声明的作用:展开单个复合值. 一个解构声明看起来像一个普通的变量声明,但它在括号中有多个变量 1.解构声明举例: val p = Point(10,20) //Point 是数据类 val(x, ...
- Kotlin 基础学习06
目录 1.Kotlin语法中异常处理与自定义异常特点 2.Kotlin语言的先决条件函数 3.Kotlin语言的substring 4.Kotlin语言的split操作 5.Kotlin语言的repl ...
最新文章
- VSLAM中的特征点三角化
- 从终端命令行运行 AppleScript 脚本
- 华为第四代服务器芯片Hi1620,华为第四代自研芯片Hi1620曝光, 全球首款7nm的ARM处理器...
- StringBuider 的效率一定高吗?要看你怎么使用
- 移动端列表点击跳转 返回保存原来高度
- labelme2coco问题:TypeError: Object of type 'int64' is not JSON serializable
- of方法:给集合一次性添加多个元素
- 黑马程序员-JAVA基础-IO流之字符流和字符流缓冲区
- Android虚拟化技术
- kafka保证数据可靠性的方式
- Ps 初学者教程,如何让照片成为手绘美图?
- mysql的常用引擎
- android+解锁风格,Android手势解锁控件实现(仿京东金融手势解锁)
- 竞品分析:美颜相机VS轻颜相机——关于美颜相机未来产品规划的思考
- 计算机编程龟兔赛跑,实例编程:龟兔赛跑的小游戏
- JAVA设计模式总结之六大设计原则(一)
- html图片不能拖动,关于html5图片拖动的代码的问题?
- C语言算法:冒泡法排序
- 亚马逊开店店铺选品技巧分析
- zxing换行_微博换行功能最新资讯