Collections interop behavior helps Kotlin work smoothly with Java collections. It makes using lists, sets, and maps from Java easy and safe in Kotlin.
Collections interop behavior in Kotlin
val kotlinList: List<String> = javaList val javaList: java.util.List<String> = kotlinList
Kotlin collections are interfaces that can wrap Java collections without copying.
You can use Kotlin collection functions on Java collections directly.
val javaList: java.util.List<String> = java.util.ArrayList() javaList.add("apple") val kotlinList: List<String> = javaList println(kotlinList[0])
val kotlinMutableList: MutableList<String> = mutableListOf("cat", "dog") val javaList: java.util.List<String> = kotlinMutableList println(javaList[1])
val javaMap: java.util.Map<String, Int> = java.util.HashMap() javaMap["one"] = 1 val kotlinMap: Map<String, Int> = javaMap println(kotlinMap["one"])
This program shows how Kotlin and Java collections can be used interchangeably without copying. Changes in Kotlin mutable list reflect in Java list.
fun main() { val javaList: java.util.List<String> = java.util.ArrayList() javaList.add("Kotlin") javaList.add("Java") // Use Java list as Kotlin list val kotlinList: List<String> = javaList println("First element from Kotlin list: ${kotlinList[0]}") // Use Kotlin mutable list as Java list val kotlinMutableList: MutableList<String> = mutableListOf("Apple", "Banana") val javaListFromKotlin: java.util.List<String> = kotlinMutableList println("Second element from Java list: ${javaListFromKotlin[1]}") // Modify Kotlin mutable list and see change in Java list kotlinMutableList.add("Cherry") println("Java list size after Kotlin list modification: ${javaListFromKotlin.size}") }
Kotlin collections wrap Java collections, so no extra memory is used.
Mutable collections in Kotlin correspond to Java collections that can be modified.
Be careful when modifying collections shared between Kotlin and Java to avoid unexpected changes.
Kotlin collections can wrap Java collections directly without copying.
This makes Kotlin and Java collections work smoothly together.
Mutable collections in Kotlin correspond to modifiable Java collections.