Kotlin List与Set和Map实例讲解

作者:知奕奕 时间:2023-03-01 01:29:57 

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

标签:Kotlin,List,Set,Map
0
投稿

猜你喜欢

  • C#实现的微信网页授权操作逻辑封装示例

    2022-08-31 04:30:05
  • Android中ListActivity用法实例分析

    2022-08-14 21:52:34
  • 浅谈Java中方法参数传递的问题

    2021-11-06 04:24:46
  • Android指纹识别API初试

    2023-01-15 20:16:11
  • Spring boot动态修改日志级别的方法

    2023-04-04 09:36:00
  • Spring Boot自定义Starter组件开发实现配置过程

    2022-05-31 16:07:12
  • 详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类

    2021-08-04 03:16:28
  • java9版本特性资源自动关闭的语法增强

    2023-10-30 23:35:24
  • 详解jeefast和Mybatis实现二级联动的问题

    2022-11-10 05:10:15
  • WPF模拟实现Gitee泡泡菜单的示例代码

    2023-09-19 00:53:16
  • java使用Jdom实现xml文件写入操作实例

    2022-09-30 02:38:23
  • Android开发实现NFC刷卡读取的两种方式

    2023-01-14 13:00:07
  • C#递归实现显示文件夹及所有文件并计算其大小的方法

    2023-09-13 01:56:01
  • Unity实现颜色渐变滑动条

    2023-11-28 10:54:51
  • 手把手教你SpringBoot快速集成Swagger的配置过程

    2023-10-30 01:16:22
  • Android 自定义布局竖向的ViewPager的实现

    2022-12-30 19:56:17
  • java的三种随机数生成方式

    2022-03-06 13:43:57
  • 使用设计模式中的工厂方法模式进行C#编程的示例讲解

    2023-10-21 05:27:08
  • Spring实现默认标签解析流程

    2021-07-29 10:07:55
  • Java源码解析HashMap的keySet()方法

    2023-11-11 06:33:05
  • asp之家 软件编程 m.aspxhome.com