如何解决如何在Kotlin中创建2D ArrayList?
我有以下示例数据->
物理-> 93
化学-> 72
数学-> 84
生物学-> 67
英语-> 78
我想将此数据存储在ArrayList
中(因为我想使其可调整大小)
然后我要在控制台中将其打印出来。
我该怎么办?
解决方法
Tenfour04指出,这是X-Y problem,因为最合适的数据结构根本不是列表,而是地图:
val marks = mapOf("Physics" to 93,"Chemistry" to 72,"Mathematics" to 84,"Biology" to 67,"English" to 78)
for ((subject,mark) in marks)
println("Subject --> $subject,Mark --> $mark")
除了看起来更自然和简洁的代码外,这还可以确保您不会将同一主题存储两次,并且每个存在的主题都只有一个标记。 (列表无法表达或强制执行这些条件。)它给出了正确的类型(String
主题和Int
标记,您可以根据需要进行算术运算,例如计算平均值)。而且查找特定主题的效率更高。
与列表一样,地图的大小也可以调整:如果将其设为可变地图,则可以根据需要添加,更新和删除项目。
关于列表:Kotlin没有多维列表或数组。相反,它具有列表 of 的列表,这是一个近似的列表,但设置和更新起来比较复杂,效率略低。当然,在某些情况下需要它们-但这不是其中之一!
,最好的方法是创建ArrayList
的{{1}}
外部ArrayList
的每个元素本身将是大小为2的ArrayList
,存储ArrayList
和Subject
Marks
控制台输出->
fun main() {
val arrayList: ArrayList<ArrayList<Any>> = arrayListOf(arrayListOf("Biology",74),arrayListOf("Chemistry",49),arrayListOf("Physics",92),arrayListOf("Mathematics",82))
for (element in arrayList) {
println("Subject --> ${element.get(0)},Marks --> ${element.get(1)}")
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。