You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Iterable<Iterable<Integer>>转为int[][]?二维数组初始化方法

解决方法

1. 转换现有map结果为int[][]

你需要将内层map生成的Iterable<Integer>转换为IntArray,再把外层集合转为Array<IntArray>——在JVM环境下,Array<IntArray>和int[][]是等价的,可直接赋值:

val mat: int[][] = (1..2).map { i ->
    (1..2).map { j -> i * j }.toIntArray()
}.toTypedArray()

如果编译器存在类型校验提示,可添加显式类型转换:

val mat: int[][] = (1..2).map { i ->
    (1..2).map { j -> i * j }.toIntArray()
}.toTypedArray() as int[][]

2. 更优的二维数组初始化方式

直接使用Kotlin的数组构造函数,跳过中间集合的创建步骤,性能更高效,代码也更简洁:

// 生成2行2列的二维数组,元素对应(1..2)范围内的i*j
val mat = Array(2) { i ->
    IntArray(2) { j -> (i + 1) * (j + 1) }
}

这种方式直接构造出Array<IntArray>(即JVM中的int[][]),无需额外转换操作。

内容的提问来源于stack exchange,提问作者Christoph S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:40:24