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

如何用Groovy从两个区间生成指定格式的二维数组?

解决Groovy生成指定一维数组的问题

完全可以实现!你当前的代码生成的是二维嵌套数组(外层数组包含6个子数组,每个子数组又包含3个[i,j]元素),只需要做一步扁平化处理,或者换用更直接的方法就能得到你想要的一维数组结构。

方法1:嵌套collect后调用flatten()

你可以在现有代码的末尾直接添加.flatten()方法,它会把所有嵌套的数组层级展开成一维:

def blob = (1..6).collect{ i -> (1..3).collect{ j -> [i, j] } }.flatten()
println "$blob ${blob.class.simpleName}"

执行后,blob就会变成你期望的[[1, 1], [1, 2], [1, 3], [2, 1], ..., [6, 3]],类型为ArrayList。

方法2:使用collectMany一步到位

Groovy提供了collectMany方法(相当于其他语言里的flatMap),它会直接将每个闭包返回的集合元素合并到最终结果中,无需先生成二维数组再扁平化:

def blob = (1..6).collectMany{ i -> (1..3).collect{ j -> [i, j] } }
println "$blob ${blob.class.simpleName}"

这个写法更简洁,效果和方法1完全一致,直接生成目标一维数组。

两种方法都能完美满足你的需求,选哪种就看你更喜欢哪种代码风格啦~

内容的提问来源于stack exchange,提问作者mike rodent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:28:23