Sequence로 변환해야 하는 Collection에서의 호출 체인을 보고합니다.

Collection을 변환하는 각 함수(예: map() 또는 filter())는 내부에서 새 Collection(보통 List 또는 Set)을 생성합니다. 여러 연속 호출의 경우 Collection에 대량의 항목이 있으면 메모리 트래픽이 크게 증가할 수 있습니다. 그럴 경우 Sequence를 사용하는 것이 좋습니다.

예:


  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()