报告应转换为序列收集上的调用链。

每个 Collection 转换函数 (例如 map()filter()) 都会在后台创建一个新的 Collection(通常是 ListSet)。 多次后续调用以及 Collection 中存在大量项目的情况下,内存流量可能会很大。 这种情况下,最好使用序列

示例:


  class Entity(val key: String, val value: String)

  fun getValues(lines: List<String>) = lines
      .filter { it.isNotEmpty() }
      .map { it.split(',', limit = 2) }
      .filter { it.size == 2 }
      .map { Entity(it[0], it[1]) }

建议通过快速修复将调用链包到 asSequence()toList() 中:


  class Entity(val key: String, val value: String)

  fun getValues(lines: List<String>) = lines
      .asSequence()
      .filter { it.isNotEmpty() }
      .map { it.split(',', limit = 2) }
      .filter { it.size == 2 }
      .map { Entity(it[0], it[1]) }
      .toList()