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

相关方法

相关推荐
三少爷的鞋4 小时前
Java 线程自上而下,Kotlin 协程自下而上
android
好的佩奇6 小时前
Dart 之增强枚举
android·flutter·dart
梦影_6 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
好的佩奇8 小时前
蓝牙之无线电与通信距离
android·flutter·蓝牙
vilya9 小时前
我把一套完整的 Python Agent 运行时塞进手机 APK:依赖闭包、Rust 轮子和三个真机坑
android
呆呆敲代码的小Y11 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
思想觉悟12 小时前
SEAndroid实战
android·linux·c++
思想觉悟13 小时前
Aosp开发磨刀石之ADB速查
android·c++
我是唐青枫13 小时前
Kotlin Inheritance(继承)详解:语法、原理、实战 Demo
开发语言·kotlin
应用市场15 小时前
用本机跑的开源音乐模型,给安卓小游戏做 20 秒无缝循环背景音乐
android·python·游戏开发·soundpool·音频处理