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=É}

相关方法

相关推荐
赶路人儿19 小时前
常见的mcp配置
android·adb
符哥200819 小时前
充电桩 WiFi 局域网配网(Android/Kotlin)流程、指令及实例说明文档
android·开发语言·kotlin
没有了遇见20 小时前
Android 项目架构之<用户信息模块>
android
Georgewu21 小时前
如何判断应用在鸿蒙卓易通或者出境易环境下?
android·harmonyos
localbob1 天前
Pico 4XVR 1.10.13安装包下载与安装教程 ico 4XVR最新版下载、4XVR 1.10.13 APK安装包、Pico VR看电影软件、4XVR完整版安装教程、Pico 4播放器推荐、V
android·vr·vr播放器·vr眼镜播放器下载·pico 4xvr·4xvr下载·pico 4xvr最新版安装包
峥嵘life1 天前
Android16 EDLA【CTS】CtsConnectivityMultiDevicesTestCases存在fail项
android·学习
大傻^1 天前
SpringAI2.0 Null Safety 实战:JSpecify 注解体系与 Kotlin 互操作
android·开发语言·人工智能·kotlin·springai
游戏开发爱好者81 天前
React Native iOS 代码如何加密,JS 打包 和 IPA 混淆
android·javascript·react native·ios·小程序·uni-app·iphone
kcuwu.1 天前
Python判断及循环
android·java·python
轩情吖1 天前
MySQL之索引
android·数据库·mysql·b+树·索引·page·