Assume the following Kotlin example that maps the source set src
to a destination set dst
:
private val src: Set<String> = setOf("hello", "world") private val dst: Set<Int> = src.map { it.length }.toSet()
This works fine. However, IntelliJ's code inspection suggests: Call chain on collection should be converted into 'Sequence':
Applying this suggestion results in
private val dst: Set<Int> = src.asSequence().map { it.length }.toSet()
What is the benefit of this?
In this case the suggestion is suboptimal. The correct way to rewrite this code (which also doesn't result in any IntelliJ warnings) is:
src.mapTo(hashSetOf()) { it.length }
This will avoid the creation of an intermediate list that will be subsequently converted to a set; the data will be added to the resulting set right away.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With