当前位置: 首页 > 知识库问答 >
问题:

如何从2个数组创建映射?

袁奇逸
2023-03-14

我有一个字符串数组和一个整数数组。如何使用第一个作为键,第二个作为值来创建地图?

val keys = arrayOf("butter", "milk", "apples")
val values = arrayOf(5, 10, 42)
val map: Map<String, Int> = ???

如何在 Kotlin 中将 List 转换为 Map?不能解决这个问题;我有2个数组,想要一个地图。

共有2个答案

彭修筠
2023-03-14

根据kotlin的说法,正在构建集合-

由于我不是专家,所以我运行这些代码,也许这应该工作得更好?

    val numbersMap = mutableMapOf<String,Int>()
        .apply{ for (i in 1.. 5)  this["key$i"] = i }
    println(numbersMap)

    //result = {key1=1, key2=2, key3=3, key4=4}

或者把它调整到上面的问题——像这样:

    val keys = arrayOf("butter", "milk", "apples")
    val values = arrayOf(5, 10, 42)
    val mapNumber = mutableMapOf<String, Int>()
            .apply { for (i in keys.indices) this[keys[i]] = values[i] }
    println(mapNumber)
严修德
2023-03-14

您可以将数组压缩在一起以获得一个对列表(list)

像这样:

val keys = arrayOf("butter", "milk", "apples")
val values = arrayOf(5, 10, 42)

val map: Map<String, Int> = 
             keys.zip(values) // Gives you [("butter", 5), ("milk", 10), ("apples", 42)]
                 .toMap()     // This is an extension function on Iterable<Pair<K, V>>

 类似资料:
  • 问题内容: 目前,每当我需要从数组创建流时,我都会 有一些直接的方法可以从数组创建流吗? 问题答案: 您可以使用Arrays.stream Eg 您也可以使用@fge所提到的,它看起来像 但是note 将返回,而如果您传递一个type数组,则将返回。因此,简而言之,您可以观察两种方法之间的区别,例如 将原始数组传递给时,将调用以下代码 当您将原始数组传递给以下代码时,将被调用 因此,您得到不同的结

  • 目前,每当我需要从数组创建流时,我都会

  • 问题内容: 我想将同一数组的2个部分组合成一个复杂的数组: 这些不起作用: 我想念什么吗?numpy是否不喜欢对复数执行数组函数?这是错误: 问题答案: 这似乎可以满足您的要求: 这是另一种解决方案: 还有另一个更简单的解决方案: PS :如果要保存内存(无中间阵列): devS的以下解决方案也很快。

  • 我有一个a类和B类的列表,没有重复的元素。“代码”属性在A类和B类中都是相同的。我想将它们转换为Map 最终映射的顺序应与列表1中的元素相同 ~A 更新:我将代码更新到下面,但它不是编译的。你知道怎么了吗?

  • 问题内容: 我需要创建一个将给定映射到的数组的静态对象。 换句话说,我想定义如下内容: 有没有简单的方法可以在Java中做到这一点? 而且,如果可能的话,我想同时为和值使用常量。 编辑: 为了澄清我的意思是值的常量,并给出我认为是正确的代码,这是我在解决方案中的第一个选项: 请注意,这些名称不是我实际使用的名称。这只是一个人为的例子。 问题答案: 你 并不 需要单独的声明和初始化。如果您知道怎么做

  • 问题内容: 我正在尝试在Swift中创建一个元组数组,但是遇到很大的困难: 以上导致编译器错误。 怎么会这样 以下内容可以正常工作: 问题答案: 它与类型别名一起使用: 更新: 从Xcode 6 Beta 3开始,数组语法已更改: