Kotlin List与Set和Map实例讲解
作者:知奕奕 发布时间:2023-03-01 01:29:57
标签:Kotlin,List,Set,Map
List
和 java 中的 list 几乎一致;
getOrElse
取出对应索引,如果该索引不存在或者为 null,就返回一个 lambda 函数;
getOrNull
取出对应索引,如果找不到就直接返回 null
val lis = listOf("abc", "asd", "qwe")
println(lis.getOrElse(0) { "cant find it" })
println(lis.getOrNull(0) ?: "null")
可变列表
我们默认使用的 listof 创建的列表是无法进行数据改动的;
此时就需要使用可变列表 mutableListOf
val mut = mutableListOf("a","b","c")
mut.add("k")
mut.removeAt(0)
可变列表和不可变列表还可以使用方法进行相互转换;
mut.toList(); // 转为不可变列表
mut.toMutableList(); // 再转回可变列表
mutator
任何可变列表都具有此属性;
我们可以直接使用运算符进行列表元素的增删;
removeIf
表示移除掉符合条件的指定元素
mut += "tom"
mut -= "tom"
mut.removeIf { it.contains("tom") }
遍历
目前有三种遍历方式,优缺点自己判断;
不做过多解释,看代码就懂了
for (str: String in mut) {
println(str)
}
mut.forEach {
println(it)
}
mut.forEachIndexed { index: Int, s: String ->
println("$index + $s")
}
set
set 集合中的元素会自动去重!
检索 set 中的元素需要使用
val setdemo = setOf("asd", "wqe", "asd")
println(setdemo.elementAt(0))
可变集合
和可变列表一致,依葫芦画瓢即可;
val setmut = mutableSetOf("son","son","sun")
setmut += "damn"
setmut -= "son"
快速去重
目前有俩种方式:
list 转为 set 然后再转回 list;
使用函数 distinct
// 二次转换去重
val lis = mutableListOf("apple", "pear", "pear")
lis.toSet().toList()
// 函数去重
lis.distinct()
列表类型的转换
可以直接将列表转换为数组
val intarr = intArrayOf(1, 2, 3)
val intlist = listOf(1, 2, 3).toIntArray()
map
映射表
下面展示了两种获取指定 key 的 value 的方法
可变映射表这里不说了
val m = mapOf("map1" to "asd", "map2" to "qwe")
println(m.getValue("map1"))
println(m["map2"])
来源:https://blog.csdn.net/delete_you/article/details/127095015
0
投稿
猜你喜欢
- 一. string的构造函数的形式:string str:生成空字符串string s(str):生成字符串为str的复制品string s
- 通常我们遇到的图片缩放需求,都是图片基于屏幕自适应后,进行缩放和移动,且图片最小只能是自适应的大小。最近遇到一个需求,要求图片只能在屏幕内缩
- 1.概念a.是个二叉树(每个节点最多有两个子节点)b.对于这棵树中的节点的节点值左子树中的所有节点值 < 根节点 < 右子树的所
- 本文实例讲述了WinForm调用jar包的方法。分享给大家供大家参考,具体如下:因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接
- SpringBoot启动自动终止也不报错Error starting ApplicationContext. To display the
- 什么是响应式简单来说当数据发生变化时,对数据有依赖的代码会重新执行。例如在Vue中,当我们的数据发生改变,界面上对该数据的引用组件会重新渲染
- Spring之动态注册bean什么场景下,需要主动向Spring容器注册bean呢?如我之前做个的一个支持扫表的基础平台,使用者只需要添加基
- Android实现界面内嵌多种卡片视图,具体内容如下效果如图所示:1.选择某个界面时,对应的第几个小圆点亮:通过selector制造圆点和进
- @Entity和@Table注解的用法@Entity注解@Entity注解和@Table注解都是Java Persistence API中定
- 本文实例讲述了C#实现字体旋转的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.Colle
- 一.正则基础1. []方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符。2. | 或表示两项之间的一个选择,它不能和
- 中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了。现在分享解决javaWEB中前后台中文乱码问题的3种方
- static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概
- 经常有同学问到,使用Android能不能开发游戏呢?能开发那些游戏呢?由于操作系统和开发语言局限,一般开发安卓手机游戏,我们很少使用其自带语
- 一、springboot 自动配置原理先说说我们自己的应用程序中Bean加入容器的办法:package com.ynunicom.dc.di
- 本文实例为大家分享了java顺时针打印矩阵的具体代码,供大家参考,具体内容如下github:剑指offer编程题 import j
- 一、ORMO:object 对象R:Realtion 关系(关系型数据库)M:Mapping 映射ORM:对象关系型映射目前流行的编程语言,
- 开发中经常遇到从集合类List、Map中取出数据转换为String的问题,这里如果处理不好,经常会遇到空指针异常java.lang.Null
- 一:问题引入前面讲到用户支付完成之后微信支付服务器会发送回调通知给商户,商户要能够正常处理这个回调通知并返回正确的状态码给微信支付后台服务器
- RestTemplate设计是为了Spring更好的请求并解析Restful风格的接口返回值而设计的,通过这个类可以在请求接口时直接解析对应