当前位置: 首页 > news >正文

Kotlin日常使用函数记录

文章目录

  • 前言
  • 字符串
  • 集合
    • 1.两个集合的差集
    • 2.集合转数组
      • 2.1.集合转基本数据类型数组
      • 2.2.集合转对象数组
  • Map
    • 1.合并Map
      • 1.1.使用 + 操作符
      • 1.2.使用 += 操作符
      • 1.3.使用 putAll 方法
      • 1.4.使用 merge 函数

前言

记录一些kotlin开发中,日常使用的函数和方式之类的,不然有时候总是忘,还得去翻官方文档或者API,必须集合转Map的方式,我总是忘 。。。😭

会不定时进行记录更新,文章也会越来越完善。

字符串

集合

1.两个集合的差集

集合1和集合2,获取集合1中有,但是集合2中没有的

fun main() {
    val collection1 = listOf(1, 2, 3, 4, 5)
    val collection2 = listOf(3, 4, 5, 6, 7)

    // 使用 minus 操作符计算差集
    val difference = collection1 - collection2
    println("使用 minus 操作符计算的差集: $difference")
}    

2.集合转数组

在 Kotlin 中,可以将集合转换为数组,根据集合元素类型的不同,转换方式也有所不同。这里分别介绍将集合转换为基本数据类型数组和对象数组的方法。

2.1.集合转基本数据类型数组

对于基本数据类型(如 Int、Double 等)的集合,需要使用特定的方法进行转换。Kotlin 提供了相应的转换方法,如 toIntArray()、toDoubleArray()、toLongArray() 等。

集合转 IntArray,使用 toIntArray() 方法将包含 Int 元素的集合转换为 IntArray。

fun main() {
    // 创建一个整数集合
    val intList = listOf(1, 2, 3, 4, 5)

    // 将集合转换为 IntArray
    val intArray: IntArray = intList.toIntArray()
}    

集合转 DoubleArray,使用 toDoubleArray() 方法将包含 Double 元素的集合转换为 DoubleArray。

fun main() {
    // 创建一个双精度浮点数集合
    val doubleList = listOf(1.1, 2.2, 3.3, 4.4, 5.5)

    // 将集合转换为 DoubleArray
    val doubleArray: DoubleArray = doubleList.toDoubleArray()
}    

2.2.集合转对象数组

使用 toTypedArray() 方法可以将任意类型的集合转换为对应的对象数组。

fun main() {
    // 创建一个字符串集合
    val stringList = listOf("apple", "banana", "cherry")

    // 将集合转换为对象数组
    val stringArray: Array<String> = stringList.toTypedArray()
}    

这里使用了String类型的数组,实际中可以是任何对象,例如你自己定义的UserDTO等对象。

Map

1.合并Map

在 Kotlin 里,合并两个 Map 有多种方式。

1.1.使用 + 操作符

此操作符能合并两个Map,若有重复键,后面 Map 的值会覆盖前面的。结果是生成一个新的Map。

fun main() {
    // 两个Map是不是可变的Map无所谓
    val map1 = mutableMapOf("a" to 1, "b" to 2)
    val map2 = mapOf("b" to 3, "c" to 4)
    val mergedMap = map1 + map2
    println(mergedMap)
}    

使用 plus 函数和 + 操作符作用相同。

fun main() {
    val map1 = mapOf("a" to 1, "b" to 2)
    val map2 = mapOf("b" to 3, "c" to 4)
    val mergedMap = map1.plus(map2)
    println(mergedMap)
}    

1.2.使用 += 操作符

在有可变 map 的场景下,我们可以使用已有的 map 来保存合并两个 map 后的结果。

fun main() {
	val map1 = mutableMapOf("a" to 1, "b" to 2)
	val map2 = mapOf("b" to 3, "c" to 4)
	map1 += map2
	println(map1 )
}

1.3.使用 putAll 方法

putAll 方法会把第二个 Map 的键值对添加到第一个可变 Map 中,重复键的值会被覆盖。要求第一个Map必须是可变Map,否则不能调用putAll方法。

fun main() {
    val mutableMap1 = mutableMapOf("a" to 1, "b" to 2)
    val map2 = mapOf("b" to 3, "c" to 4)
    mutableMap1.putAll(map2)
    println(mutableMap1)
}    

1.4.使用 merge 函数

若有重复键,想自定义处理方式,可使用 merge 函数。

例如,合并两个Map的时候,重复键的值进行相加。

fun main() {
	// 这里的map1需要是可变的
    val map1 = mutableMapOf("a" to 1, "b" to 2)
    val map2 = mapOf("b" to 3, "c" to 4)
    // 循环map2, 从map1中获取同key的值, 然后加起来, 放入map1中
    map2.forEach { (key, value) ->
    	// oldVal 和 newVal 分别对应于 map1 和 map2 中的值
        map1.merge(key, value) { oldValue, newValue -> oldValue + newValue }
    }
    // {a=1, b=5, c=4}
    println(map1)
}    

相关文章:

  • JavaScript逆向工程实战:如何精准定位加密参数生成位置
  • 大模型学习七:‌小米8闲置,直接安装ubuntu,并安装VNC远程连接手机,使劲造
  • 国网B接口协议资源上报流程详解以及上报失败原因(电网B接口)
  • 嵌入式---灰度传感器
  • nginx镜像创建docker容器,及其可能遇到的问题
  • 通过 SSH 方式访问 GitHub 仓库
  • AI创业风向标:构建下一代「AI叙事创作平台」
  • 为什么在模型训练过程中,不同的张量(比如输入数据和模型参数)被放置在了不同的 GPU 设备上,而模型要求所有相关张量都在同一个设备上才能正确计算
  • AI日报 - 2025年4月10日
  • Django 生成PDF文件
  • 【无标题】linux打包utools为appimage
  • “Common::PluginInterface”: 无法实例化抽象类
  • 线程控制
  • Node.js EventEmitter 深入解析
  • 从零开始学Python游戏编程17-函数2
  • 手机静态ip地址怎么获取?方法与解析‌
  • ESModule和CommonJS在Node中的区别
  • windows上opencv编译cuda版本
  • java学习笔记14——网络编程
  • CesiumEarth卫星影像/电子地图等二维切片数据制作
  • 营销型网站建设域名/怎么做一个网站平台
  • 书籍扉页页面设计模板/seo流量的提升的软件
  • 叫別人做网站靠谱吗/怎么做好网络营销推广
  • 网站建设小图标/十大营销策略
  • 溧阳手机网站哪里做/外贸平台有哪些?
  • wordpress主题cms博客/安卓优化大师下载安装到手机