目录

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相关推荐

  1. Kotlin基础学习(1)

    Kotlin基础学习(1) 本文主要讲解kotlin的部分基础知识,并不是全部基础. 提示:纯属个人理解,如有理解错误,欢迎留言指正批评. 一.Null检查机制 kotlin对于声明可为空的参数,使用 ...

  2. Kotlin 基础学习

    学! 原文:https://blog.csdn.net/CrazyApes/article/details/122091459 文章目录 Kotlin 线上编写 变量 lateinit延迟初始化 空安 ...

  3. Kotlin基础学习(一)—— Kotlin 简介

    一.背景 2017年 的Google I/O大会上,Kotlin称为官方的Android开发语言. 发明公司:JetBrains(最负盛名的IDE创造者,包括Android Studio.Intell ...

  4. Kotlin基础学习 17

    目录 1.Kotlin语言的过滤函数-filter 2.Kotlin语言的合并函数-zip 3.Kotlin语言的函数式编程 4.Kotlin语言的互操作性与可空性 5.单例模式 6.注解@Jvmna ...

  5. Android Kotlin基础学习 - 接口

    文章目录 背景 接口定义 接口实现 实例 接口中的属性 实例 函数重写 实例 背景 学习,记录分享,坚持开源! 接口定义 Kotlin 接口与 Java 8 类似,使用 interface 关键字定义 ...

  6. Kotlin基础学习 09

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

  7. Kotlin基础学习 --- 内置函数apply、let

    apply内置函数 fun main(){val buffer = "i am buffer "//常规方式println("buffer的字符长度是:${buffer. ...

  8. Kotlin基础学习(十九)—— 解构声明和组件函数

    解构声明的作用:展开单个复合值. 一个解构声明看起来像一个普通的变量声明,但它在括号中有多个变量 1.解构声明举例: val p = Point(10,20) //Point 是数据类 val(x, ...

  9. Kotlin 基础学习06

    目录 1.Kotlin语法中异常处理与自定义异常特点 2.Kotlin语言的先决条件函数 3.Kotlin语言的substring 4.Kotlin语言的split操作 5.Kotlin语言的repl ...

最新文章

  1. VSLAM中的特征点三角化
  2. 从终端命令行运行 AppleScript 脚本
  3. 华为第四代服务器芯片Hi1620,华为第四代自研芯片Hi1620曝光, 全球首款7nm的ARM处理器...
  4. StringBuider 的效率一定高吗?要看你怎么使用
  5. 移动端列表点击跳转 返回保存原来高度
  6. labelme2coco问题:TypeError: Object of type 'int64' is not JSON serializable
  7. of方法:给集合一次性添加多个元素
  8. 黑马程序员-JAVA基础-IO流之字符流和字符流缓冲区
  9. Android虚拟化技术
  10. kafka保证数据可靠性的方式
  11. Ps 初学者教程,如何让照片成为手绘美图?
  12. mysql的常用引擎
  13. android+解锁风格,Android手势解锁控件实现(仿京东金融手势解锁)
  14. 竞品分析:美颜相机VS轻颜相机——关于美颜相机未来产品规划的思考
  15. 计算机编程龟兔赛跑,实例编程:龟兔赛跑的小游戏
  16. JAVA设计模式总结之六大设计原则(一)
  17. html图片不能拖动,关于html5图片拖动的代码的问题?
  18. C语言算法:冒泡法排序
  19. 亚马逊开店店铺选品技巧分析
  20. zxing换行_微博换行功能最新资讯

热门文章

  1. Typora使用Gitee作为图床
  2. [C/C++] 关于strncpy函数
  3. 《Splunk智能运维实战》——3.7 制作请求方法、浏览量和响应时间的时间图
  4. Latex——中文破折号的输入
  5. 圆度坐标法MATLAB,基于MATLAB的圆度评定方法
  6. C语言结构体函数指针
  7. QCheckBox互斥
  8. Android app做成 (home)launcher 只是 应用开发非ROM 开发
  9. 开源OCR识别框架Tess4j简单使用
  10. 零基础学习PHP编程——基本概念详解之域名解析与DNS缓存