Dhruv Chadha:
Eu tenho uma lista de Kotlin. Eu preciso criar um mapa de cada elemento da lista, a um conjunto mutável vazio, algo como isto -
var mutableMap: MutableMap<Int, MutableSet<Int>> = mutableMapOf(someList.map{ it to mutableSetOf<Int>() })
Mas eu estou recebendo este erro -
Type mismatch.
Required:
Pair<TypeVariable(K), TypeVariable(V)>
Found:
List<Pair<Int, MutableSet<Int>>>
Eu sei que mutableMapOf () aceita varargs pairs
, então eu tentei o operador spread ( *
), mas que o trabalho também não funcionavam. Por favor, me ajudar a alcançar o resultado.
Tenfour04:
O operador spread é para Arrays, não listas. Além disso, se você define o seu tipo de variável como um Mapa de Conjuntos em vez de um MutableMap de MutableSets, você está lançando-o para ser imutável. Então, para corrigir o seu código:
var mutableMap: MutableMap<Int, MutableSet<Int>> = mutableMapOf(*someList.map{ it to mutableSetOf<Int>() }.toTypedArray())
Mas seria mais limpo para fazer:
val map = someList.associateWith { mutableSetOf<Int>() }.toMutableMap()