Spec-Zone.ru › Kotlin 2

copy

kotlin-stdlib/kotlin.collections/copy

Начиная с Kotlin: 2.3

@ExperimentalStdlibApi
fun <K, V> Map.Entry<K, V>.copy(): Map.Entry<K, V>

Возвращает неизменяемую копию этой записи карты с теми же ключом и значением.

Возвращённая запись не связана с картой, из которой была получена эта запись. Ключ и значение возвращённой записи остаются неизменными, даже если карта, из которой была получена исходная запись, была изменена.

Возвращаемое значение

Неизменяемая запись, равная записи this, но не связанная ни с одной картой. Функция может вернуть ту же запись, если запись this была получена в результате вызова copy. Хотя возвращённая запись по-прежнему реализует интерфейс Map.Entry, она может быть экземпляром не того же класса, что и исходная запись.

Примеры

import kotlin.test.*
import java.util.*

fun main() { 
   //sampleStart 
   val map = mutableMapOf(1 to "a", 2 to "b", 3 to "c", 4 to "d")
val selectedEntries = map.entries.filter { it.key % 2 == 0 }
println(selectedEntries) // [2=b, 4=d]
// This may throw: "The backing map has been modified after this entry was obtained."
// because the map is structurally modified as soon as the first one entry is removed
// map.entries.removeAll(selectedEntries)

val selectedEntriesCopy = selectedEntries.map { it.copy() }
map.entries.removeAll(selectedEntriesCopy)
println(map) // {1=a, 3=c}

// Copied entries continue to be valid even after the original map is cleared
map.clear()
println(selectedEntriesCopy) // [2=b, 4=d] 
   //sampleEnd
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/copy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API