Как добавить список на карту в котлине
Мне нужно добавить немного MutableList<String>
на карту Map<String, List<String>>
, вот как я пытался его инициализировать:
private var theSteps: MutableList<String> = mutableListOf()
private var optionsList: Map<String, List<String>> = mapOf()
Затем я добавляю данные в MutableList следующим образом:
theSteps.add("one")
theSteps.add("two")
theSteps.add("three")
все работает нормально, пока я не попробую добавить в Map
:
optionsList.add("list_1" to theSteps)
Это просто дает мне ошибку Unresolved reference add
и я не могу найти четкую документацию о том, как добавлять к нему элементы.
2 ответа
optionsList
должен быть MutableMap
добавить что-нибудь, как будто у вас есть MutableList
; или вы можете использовать
theSteps += "list_1" to theSteps
создать новую карту с добавленной парой и обновитьtheSteps
переменная. Это вызывает plus
функция расширения:
Создает новую карту, доступную только для чтения, путем замены или добавления записи в эту карту из заданной пары ключ-значение.
(найдите указанное выше, чтобы найти правильную перегрузку)
Вы не можете добавить на карту, потому что mapOf
создает карту только для чтения
fun <K, V> mapOf(): Map<K, V>
Возвращает пустую карту только для чтения.
Вероятно, вы захотите создать MutableMap (или аналогичный)
private var optionsList: Map<String, List<String>> = mutableMapOf()
Затем вы можете использовать метод плюс:
optionsList = optionsList.plus("list_1" to theSteps)
Или посмотрите другие варианты как @voddan:
val nameTable = mutableMapOf<String, Person>() fun main (args: Array<String>) { nameTable["person1"] = example