Kotlin associateBy用法及代码示例

本文方法及代码示例基于Kotlin 2.1.20 Released

associateBy 所在包 kotlin.text.associateBy,其相关用法介绍如下:

用法一

kotlin 复制代码
inline fun <K> CharSequence.associateBy(
    keySelector: (Char) -> K
): Map<K, Char>

返回一个Map,其中包含给定字符序列中的字符,该字符序列由应用于每个字符的keySelector 函数返回的键索引。

如果任意两个字符具有由keySelector 返回的相同键,则最后一个将添加到Map中。

返回的映射保留原始字符序列的条目迭代顺序。

代码示例:

kotlin 复制代码
import java.util.Locale
import kotlin.test.*

fun main(args: Array<String>) {
    //sampleStart
    val string = "bonne journée"
    // associate each character by its code
    val result = string.associateBy { char -> char.code }
    // notice each char code occurs only once
    println(result) // {98=b, 111=o, 110=n, 101=e, 32= , 106=j, 117=u, 114=r, 233=é}
    //sampleEnd
}

// 输出
{98=b, 111=o, 110=n, 101=e, 32= , 106=j, 117=u, 114=r, 233=é}

用法二

kotlin 复制代码
inline fun <K, V> CharSequence.associateBy(
    keySelector: (Char) -> K, 
    valueTransform: (Char) -> V
): Map<K, V>

返回一个Map,其中包含由valueTransform 提供的值并由应用于给定字符序列的字符的keySelector 函数索引。

如果任意两个字符具有由keySelector 返回的相同键,则最后一个将添加到Map中。

返回的映射保留原始字符序列的条目迭代顺序。

代码示例:

kotlin 复制代码
import java.util.Locale
import kotlin.test.*

fun main(args: Array<String>) {
    //sampleStart
    val string = "bonne journée"
    // associate each character by the code of its upper case equivalent and transform the character to upper case
    val result = string.associateBy({ char -> char.uppercaseChar().code }, { char -> char.uppercaseChar() })
    // notice each char code occurs only once
    println(result) // {66=B, 79=O, 78=N, 69=E, 32= , 74=J, 85=U, 82=R, 201=É}
    //sampleEnd
}

// 输出
{66=B, 79=O, 78=N, 69=E, 32= , 74=J, 85=U, 82=R, 201=É}

相关方法

相关推荐
SharpCJ6 小时前
Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革
android·ai·aigc
_李小白7 小时前
【OSG学习笔记】Day 38: TextureVisitor(纹理访问器)
android·笔记·学习
JJay.7 小时前
Kotlin 高阶函数学习指南
android·开发语言·kotlin
android_cai_niao7 小时前
kotlin中的when
kotlin·when
渔舟小调7 小时前
后端框架选型:为什么选Kotlin + Spring Boot
kotlin·idea
jinanwuhuaguo7 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
JJay.8 小时前
Android Kotlin 协程使用指南
android·开发语言·kotlin
BLUcoding8 小时前
Android 布局介绍
android
summerkissyou19878 小时前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
徒 花8 小时前
数据库知识复习05
android·数据库