- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 translations
的 MutableMap。我想将其克隆到另一个 MutableMap 或 Map 中。我使用以下方法完成了此操作:translations.map { it.key to it.value }.toMap()
这对我来说“感觉”不对。是否有更惯用的方法来克隆 MutableMap?
最佳答案
在 Kotlin 1.1+ 中,您可以使用 toMutableMap
:
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
val mutableMapCopy = mutableMap.toMutableMap()
mutableMap.clear()
println(mutableMap) //=> {}
println(mutableMapCopy) //=> {a=1, b=2}
Kotlin Playground :https://pl.kotl.in/LGhPpdjv5
Kotlin 1.0.x 标准库没有定义复制 map 的惯用方式。 更多惯用的方法是 map.toList().toMap()
但有时在 Kotlin 中做某事的最惯用的方法是简单地定义你自己的 extensions .例如:
fun <K, V> Map<K, V>.toMap(): Map<K, V> = when (size) {
0 -> emptyMap()
1 -> with(entries.iterator().next()) { Collections.singletonMap(key, value) }
else -> toMutableMap()
}
fun <K, V> Map<K, V>.toMutableMap(): MutableMap<K, V> = LinkedHashMap(this)
以上扩展函数与release 1.1-M03 (EAP-3)中定义的非常相似.
来自 kotlin/Maps.kt at v1.1-M03 · JetBrains/kotlin :
/**
* Returns a new read-only map containing all key-value pairs from the original map.
*
* The returned map preserves the entry iteration order of the original map.
*/
@SinceKotlin("1.1")
public fun <K, V> Map<out K, V>.toMap(): Map<K, V> = when (size) {
0 -> emptyMap()
1 -> toSingletonMap()
else -> toMutableMap()
}
/**
* Returns a new mutable map containing all key-value pairs from the original map.
*
* The returned map preserves the entry iteration order of the original map.
*/
@SinceKotlin("1.1")
public fun <K, V> Map<out K, V>.toMutableMap(): MutableMap<K, V> = LinkedHashMap(this)
关于kotlin - 克隆 MutableMap 的惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916806/
我的问题是更多地了解文档。上面写着: fun Map.forEach( action: (Entry) -> Unit) 但是我不明白如何实现它。如何在循环中获取 Key 和 Value? 我想对
我有一个名为 translations 的 MutableMap。我想将其克隆到另一个 MutableMap 或 Map 中。我使用以下方法完成了此操作:translations.map { it.k
在文档中,我看到我们有一个mutableMap的setValue。 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/se
我将 JSON 加载的对象存储在 MutableMap 中,以便能够通过它的键获取一个对象(JSON 中带有 id 字段) > 对象): [{id: 1, name: "Red"}, {id: 2,
在 kotlin 标准库中我们有 MutableMap 接口(interface)有这个方法 public abstract fun put(key: K, value: V): V? 如果它接受不可
这是食谱应用程序的一部分。我在我写的食谱课上。成分是我写的另一门课。这个想法是将成分及其数量(作为 Int)存储在映射中。 在类主体中,我将 map 声明为: var ingredients: Map
我目前有像dsl这样的类,并且具有构建能力 class GRLMessage { var headerMap : MutableMap = mutableMapOf() lateini
这是食谱应用程序的一部分。我在我写的食谱课上。成分是我写的另一门课。这个想法是将成分及其数量(作为 Int)存储在映射中。 在类主体中,我将 map 声明为: var ingredients: Map
我最近在我的 ubuntu 系统上安装了 python3.10,我相信我创建了一个从 /usr/bin/python3 到 /usr/bin/python3.10 的链接 如果我运行 python -
MutableMap.keys属性定义为:abstract val keys: MutableSet 我了解keys的内容会随着底层 map 的变化而变化,但是如何keys它自己可以修改吗? IE :
var chart_values: MutableSet>? = mutableSetOf() 打印 chart_values: [ground={}, ground_level={}, date_o
我按照说明在 Ubuntu 14.04 g2.8xlarge aws 实例上安装 Google Tensorflow 及其依赖项。在尝试运行示例问题时,我遇到了下面发布的错误。任何帮助将不胜感激。谢谢
我不明白 Kotlin 中的 MutableMap 和 Map 有什么区别? 以下代码来自 https://github.com/antoniolg/Kotlin-for-Android-Develo
给定一个嵌套的不可变映射: val someNestedMap = mapOf( 2 to mapOf( "a" to true, "b" to false,
我的可变 map 为 private var optionsList: MutableMap> = mutableMapOf()我需要将它发送到另一个 Activity ,我使用了这个:
通常,我可以随意修改 monkey-patch 和 mock 方法: from UserDict import DictMixin class py2fake_dict(DictMixin):
我希望下面的 SpreadSheet 类被内置的 isinstance() 视为一个 dict 子类,但是当我尝试要这样注册它,将抛出一个 AttributeError 异常(如下所示)。 做这样的事
很多文档都指出了 Kotlin 中 Map 和 MutableMap 之间的区别,但是,我似乎找不到 HashMap 和 MutableMap 之间的区别。它们可以互换使用吗?这2个数据结构的实现水平
我是 Kotlin 的新手。当我学习 Storing Properties in a Map .我尝试以下用法。 class User(val map: MutableMap) { val n
如何转换MutableMap至ObjectDoubleMap使用 Eclipse Collections? 在我的用例中,我有一个可变映射,它是聚合结果。例如; MutableMap map = li
我是一名优秀的程序员,十分优秀!