intellij-idea - 为什么 IntelliJ 建议将调用链转换为序列?

假设以下 Kotlin 示例将源集 src 映射到目标集 dst:

private val src: Set<String> = setOf("hello", "world")
private val dst: Set<Int> = src.map { it.length }.toSet()

这很好用。但是,IntelliJ 的代码检查表明:集合上的调用链应转换为“序列”:

应用此建议会导致

private val dst: Set<Int> = src.asSequence().map { it.length }.toSet()

这样做有什么好处?

最佳答案

在这种情况下,建议不是最理想的。重写此代码的正确方法(也不会导致任何 IntelliJ 警告)是:

src.mapTo(hashSetOf()) { it.length }

这将避免创建随后将转换为集合的中间列表;数据将立即添加到结果集中。

https://stackoverflow.com/questions/52383212/

相关文章:

android - 抑制 "Identifier not allowed in Android"

java - 安卓3.3.0更新,错误: Cause: invalid type code: 68

hibernate - 如何使用 JpaRepository 进行批量(多行)插入?

kotlin - 我可以省略在 Kotlin 中不使用的接口(interface)方法吗?

java - 为什么可以在 Kotlin 的类之外编写函数?

android - Kotlin Android 打印到控制台

java - 在 Kotlin 中使用 Room 的 @ForeignKey 作为 @Entity

kotlin - 如何使用 Gradle Kotlin 脚本创建胖 JAR?

java - getActionView 已弃用?

android - 带有命名参数的 Kotlin 中的 Dagger 2 构造函数注入(inject