美文网首页Android 知识
kotlin 内置函数- 关联associate...

kotlin 内置函数- 关联associate...

作者: zcwfeng | 来源:发表于2022-05-06 16:29 被阅读0次

关联 转换允许从集合元素和与其关联的某些值构建 Map。 在不同的关联类型中,元素可以是关联 Map 中的键或值。

  • 基本的关联函数 associateWith() 创建一个 Map,其中原始集合的元素是键,并通过给定的转换函数从中产生值。 如果两个元素相等,则仅最后一个保留在 Map 中
val numbers = listOf("one", "two", "three", "three")
println(numbers.associateWith { it.length })

------>result
{one=3, two=3, three=5}

  • 为了使用集合元素作为值来构建 Map,有一个函数 associateBy()。 它需要一个函数,该函数根据元素的值返回键。如果两个元素相等,则仅最后一个保留在 Map 中。 还可以使用值转换函数来调用 associateBy()
val numbers = listOf("one", "two", "three", "four")

println(numbers.associateBy { it.first().toUpperCase() })
println(numbers.associateBy(keySelector = { it.first().toUpperCase() }, valueTransform = { it.length }))

------>result
{O=one, T=three, F=four}
{O=3, T=5, F=4}

  • 另一种构建 Map 的方法是使用函数 associate(),其中 Map 键和值都是通过集合元素生成的。 它需要一个 lambda 函数,该函数返回 Pair:键和相应 Map 条目的值。

请注意,associate() 会生成临时的 Pair 对象,这可能会影响性能。 因此,当性能不是很关键或比其他选项更可取时,应使用 associate()

data class FullName(val firstName: String, val lastName: String)


    fun parseFullName(fullName: String): FullName {
        val nameParts = fullName.split(" ")
        if (nameParts.size == 2) {
            return FullName(nameParts[0], nameParts[1])
        } else throw Exception("Wrong name format")
    }

    val names = listOf("Alice Adams", "Brian Brown", "Clara Campbell")
    println(names.associate { name -> parseFullName(name).let { it.lastName to it.firstName } })

------> result
{Adams=Alice, Brown=Brian, Campbell=Clara}
同上需要建立转换函数parseFullName 并且定义解构 data

相关文章

  • kotlin 内置函数- 关联associate...

    关联 转换允许从集合元素和与其关联的某些值构建 Map。 在不同的关联类型中,元素可以是关联 Map 中的键或值。...

  • kotlin内置函数

    内置函数学习笔记apply ,let,run,with,also###

  • Android学习Kotlin之三、标准库函数-集合List-S

    Kotlin标准库函数 在 Kotlin 源码的Standard.kt标准库中提供了一些便捷的内置高阶函数如 ap...

  • Kotlin集合内置函数

    1.LINQ-风格 getShortWordsTo 上面逻辑看起来似乎不太直观LINQ: apply代替let l...

  • Kotlin 内置函数-joinToString

    可读格式检索集合内容,将集合转换为字符串的函数 joinToString() 根据提供的参数从集合元素构建单个 S...

  • 函数基本定义与调用

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 内置函数: python内置的函数,可以直接调...

  • 【kotlin】kotlin内置函数run、with、apply

    run、with、apply、also、let 这五个函数作用基本一致,只有在用法上有一些区别。 用法示例:现有P...

  • 箭头函数

    箭头函数与传统的JavaScript函数主要区别在于以下几点: 1、对 this 的关联。函数内置this的值,取...

  • 9.kotlin 内置函数

    在kotlin中,有很多好用的内置函数,用好了可以大大提升开发效率,下面我们就来聊聊比较常用的那几个 1.let ...

  • Kotlin内置函数- 合并 zip

    合拢 转换是根据两个集合中具有相同位置的元素构建配对。 在 Kotlin 标准库中,这是通过 zip()[http...

网友评论

    本文标题:kotlin 内置函数- 关联associate...

    本文链接:https://www.haomeiwen.com/subject/udoayrtx.html