kotlin - 如何将键和值添加到 Kotlin 中列表的映射?
问题描述
我创建了一个列表地图,我只是想像这样添加到地图中:
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
不知道这会在哪里?似乎它不知道我正在尝试映射某些东西。我尝试了 put 方法,但它似乎无法识别它。
谢谢。
编辑:
谢谢 Tenfour04 - 你帮了很多忙!
解决方案
您已在此处将外部映射指定为只读映射,将内部列表指定为变量类型中的只读列表:
private val bandMap: MutableMap<Int,List<List<Int>>> = mutableMapOf()
即使您将 MutableLists 放入您的地图中,由于属性类型为bandMap
.
MutableList
如果需要对其进行变异,请指定为内部列表的类型:
private val bandMap: MutableMap<Int, List<MutableList<Int>>> = mutableMapOf()
或者,如果您还需要修改列表的外部列表:
private val bandMap: MutableMap<Int, MutableList<MutableList<Int>>> = mutableMapOf()
旁注,这种三维集合结构使用起来有点混乱(容易出错)。您可能会想出一个使用类的结构,以便更容易推理和使用。我真的不知道你的结构代表什么,但这是一个模糊的例子:
class Band {
val rsrpList = mutableListOf<Int>()
val rsrqList = mutableListOf<Int>()
val levelList = mutableListOf<Int>()
}
val bandMap: MutableMap<Int, Band> = mutableMapOf()
bandMap[3] = Band()
推荐阅读
- powerbi - 动态日期过滤器
- python - django 对象没有属性 status_code
- python - 使用 shutil move() 方法移动文件时出现 FileNotFoundError [Errno2]
- sql - 插入和多个联合与 3 个表
- xamarin - Xamarin.Form.Android 的 TargetFrameworkVersion 问题
- react-native - 以关闭前的最后一个状态打开应用程序
- android - 使用材质组件 DayNight 主题的深色模式时,微调器项目文本的样式不正确
- php - 制作HTML表格以显示PHP中变量的数据类型
- asp.net - 如何使用@Html.DisplayNameFor 隐藏格式年份?
- javascript - 当我刷新页面时,绝对定位元素不会隐藏在我的布局中。为什么?