You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin:如何对Set元素执行map操作并保留Set类型输出?

实现Set映射后直接返回Set类型的几种方式

方式一:用mapTo指定目标集合

通过mapTo函数直接将映射结果存入MutableSet,无需额外转换步骤:

val result: Set<String> = setOf("b", "a", "z").mapTo(mutableSetOf()) { "${it}.b" }

这里mapTo会把每个元素映射后的值添加到传入的mutableSetOf()中,最终返回的集合就是Set类型(MutableSet继承自Set)。

方式二:用buildSet构建器构建

Kotlin 1.3及以上版本提供的buildSet可以直接在lambda里完成元素映射和Set构建:

val result: Set<String> = buildSet {
    setOf("b", "a", "z").forEach { add("${it}.b") }
}

这种写法更直观,内部通过add方法将映射后的元素加入新Set,最终返回不可变的Set实例。

方式三:自定义扩展函数简化调用

如果需要频繁使用这类操作,可以给Set扩展一个专属的映射函数:

fun <T, R> Set<T>.mapToSet(transform: (T) -> R): Set<R> {
    return mapTo(mutableSetOf(), transform)
}

// 调用示例
val result: Set<String> = setOf("b", "a", "z").mapToSet { "${it}.b" }

这样就能像使用原生map函数一样,直接得到Set类型的映射结果。

内容的提问来源于stack exchange,提问作者pixel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:27:22