Kotlin中如何将mutableListOf<MutableList<Pair<Int,Int>>>转为静态二维数组
将二维MutableList转换为二维Array的高效方案
不用手动写遍历循环,Kotlin标准库已经提供了简洁且高效的方法,直接利用map和toTypedArray()就能完成转换:
示例代码
首先定义你的二维MutableList:
val mutableList2D: MutableList<MutableList<Pair<Int, Int>>> = mutableListOf( mutableListOf(1 to 2, 3 to 4), mutableListOf(5 to 6, 7 to 8) )
转换为二维Array的一行代码:
val array2D: Array<Array<Pair<Int, Int>>> = mutableList2D.map { innerList -> innerList.toTypedArray() }.toTypedArray()
原理说明
- 内层的
innerList.toTypedArray():把每个MutableList<Pair<Int, Int>>直接转换成对应的Array<Pair<Int, Int>>,这是标准库针对集合转数组的优化方法。 - 外层的
toTypedArray():将经过map转换后的List<Array<Pair<Int, Int>>>转换成最终的Array<Array<Pair<Int, Int>>>。
效率对比
这种方法和手动遍历的时间复杂度都是O(n)(n是所有元素的总数),但标准库的实现是经过优化的底层代码,不仅代码更简洁易读,还能避免手动循环可能出现的错误,实际运行效率和手动遍历持平甚至更优。
内容的提问来源于stack exchange,提问作者Bigo 20
相关产品推荐
相关产品推荐

