[英]How to add key and value to map of list of lists in Kotlin?
我有一個 map 創建的列表,我只是想像這樣添加到 map 中:
val bandMap: Map<Int,List<List<Int>>> = mutableMapOf()
val rsrpList = mutableListOf<Int>()
val rsrqList = mutableListOf<Int>()
val levelList = mutableListOf<Int>()
rsrpList.add(3)
rsrqList.add(4)
levelList.add(1)
val listOfLists = mutableListOf(rsrpList,rsrqList,levelList)
bandMap[3] = listOfLists
但是“bandMap[3] = listOfLists”表示不匹配。
No set method providing array access
不知道這會在哪里? 好像它不知道我正在嘗試 map 什么。 我嘗試了 put 方法,但它似乎無法識別它。
謝謝。
編輯:
謝謝 Tenfour04 - 你幫了很多忙!
您已將外部 map 指定為只讀 Map 並將內部列表指定為變量類型中的只讀列表:
private val bandMap: MutableMap<Int,List<List<Int>>> = mutableMapOf()
即使您將 MutableLists 放入 map 中,由於bandMap
的屬性類型,當您檢索它們時它們會向上轉換為 Lists。
如果您需要對它們進行變異, MutableList
指定為內部列表的類型:
private val bandMap: MutableMap<Int, List<MutableList<Int>>> = mutableMapOf()
或者,如果您還需要修改列表的外部列表:
private val bandMap: MutableMap<Int, MutableList<MutableList<Int>>> = mutableMapOf()
旁注,這種三維集合結構使用起來有點混亂(容易出錯)。 您可能會想出一個使用 class 的結構,以便更容易推理和使用。 我真的不知道你的結構代表什么,但這是一個模糊的例子:
class Band {
val rsrpList = mutableListOf<Int>()
val rsrqList = mutableListOf<Int>()
val levelList = mutableListOf<Int>()
}
val bandMap: MutableMap<Int, Band> = mutableMapOf()
bandMap[3] = Band()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.