JetBrains / kotlin-playground

Self-contained component to embed in websites for running Kotlin code
https://jetbrains.github.io/kotlin-playground/examples/
Apache License 2.0
447 stars 80 forks source link

cannot create a `hashMap` from a `List<Pair<String, String>>` by using `hashMapOf` #167

Closed masx200 closed 1 year ago

masx200 commented 1 year ago

cannot create a hashMap from a List<Pair<String, String>> by using hashMapOf

fun main() {

    val colors = listOf("red", "brown", "grey")
    val animals = listOf("fox", "bear", "wolf")
    val map = hashMapOf<String, String>(*(colors zip animals))

    println(map)

}
Type mismatch: inferred type is List<Pair<String, String>> but Array<out Pair<TypeVariable(K), TypeVariable(V)>> was expected

https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS43LjEwIiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiIsIm5vbmVNYXJrZXJzIjp0cnVlLCJ0aGVtZSI6ImlkZWEiLCJjb2RlIjoiZnVuIG1haW4oKSB7XG5cbiAgICB2YWwgY29sb3JzID0gbGlzdE9mKFwicmVkXCIsIFwiYnJvd25cIiwgXCJncmV5XCIpXG4gICAgdmFsIGFuaW1hbHMgPSBsaXN0T2YoXCJmb3hcIiwgXCJiZWFyXCIsIFwid29sZlwiKVxuICAgIHZhbCBtYXAgPSBoYXNoTWFwT2Y8U3RyaW5nLCBTdHJpbmc+KCooY29sb3JzIHppcCBhbmltYWxzKSlcblxuICAgIHByaW50bG4obWFwKVxuXG5cbn0ifQ==

masx200 commented 1 year ago

fun main() {

    val colors = listOf("red", "brown", "grey")
    val animals = listOf("fox", "bear", "wolf")
    val map = hashMapOf<String, String>(*arrayOf(*(colors zip animals)))

    println(map)

}

Type mismatch: inferred type is List<Pair<String, String>> but Array<out TypeVariable(T)> was expected
Overload resolution ambiguity: public inline fun println(message: Any?): Unit defined in kotlin.io public inline fun println(message: Boolean): Unit defined in kotlin.io public inline fun println(message: Byte): Unit defined in kotlin.io public inline fun println(message: Char): Unit defined in kotlin.io public inline fun println(message: CharArray): Unit defined in kotlin.io public inline fun println(message: Double): Unit defined in kotlin.io public inline fun println(message: Float): Unit defined in kotlin.io public inline fun println(message: Int): Unit defined in kotlin.io public inline fun println(message: Long): Unit defined in kotlin.io public inline fun println(message: Short): Unit defined in kotlin.io
masx200 commented 1 year ago
fun main() {

    val colors = listOf("red", "brown", "grey")
    val animals = listOf("fox", "bear", "wolf")
    val map = HashMapFrom(colors zip animals)

    println(map)

}

fun <T,V>HashMapFrom(list:Collection<Pair<T,V>>):HashMap<T,V>{

    return HashMap<T,V>().apply{

        for((f,s) in list){

            this[f]=s
        }

    }
}

https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS43LjEwIiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiIsIm5vbmVNYXJrZXJzIjp0cnVlLCJ0aGVtZSI6ImlkZWEiLCJjb2RlIjoiZnVuIG1haW4oKSB7XG5cbiAgICB2YWwgY29sb3JzID0gbGlzdE9mKFwicmVkXCIsIFwiYnJvd25cIiwgXCJncmV5XCIpXG4gICAgdmFsIGFuaW1hbHMgPSBsaXN0T2YoXCJmb3hcIiwgXCJiZWFyXCIsIFwid29sZlwiKVxuICAgIHZhbCBtYXAgPSBIYXNoTWFwRnJvbShjb2xvcnMgemlwIGFuaW1hbHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgICBwcmludGxuKG1hcClcblxuXG59XG5cbmZ1biA8VCxWPkhhc2hNYXBGcm9tKGxpc3Q6Q29sbGVjdGlvbjxQYWlyPFQsVj4+KTpIYXNoTWFwPFQsVj57XG4gICAgXG4gICAgXG4gICAgXG4gICAgcmV0dXJuIEhhc2hNYXA8VCxWPigpLmFwcGx5e1xuICAgICAgICBcbiAgICAgICAgZm9yKChmLHMpIGluIGxpc3Qpe1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXNbZl09c1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBcbiAgICB9XG59XG5cblxuXG5cbiJ9

masx200 commented 1 year ago
fun main() {

    val colors = listOf("red", "brown", "grey")
    val animals = listOf("fox", "bear", "wolf")

            val map =(colors zip animals).toMap()

    println(map)

}
masx200 commented 1 year ago
fun main() {

    val colors = listOf("red", "brown", "grey")
    val animals = listOf("fox", "bear", "wolf")
    val ps=colors zip animals
    val map = hashMapOf<String, String>(*Array(colors.size,{ps[it]}))

    println(map)

}
masx200 commented 1 year ago

fun main() {

    val colors = listOf("red", "brown", "grey")
    val animals = listOf("fox", "bear", "wolf")
    val map = hashMapOf<String, String>(*(

        colors zip animals).toTypedArray())

    println(map)

}