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

Groovy如何将两个对应数据集按相同键合并分组

Groovy 按索引配对分组实现方案

核心思路

将两个列表相同索引位置的元素对应为键值对,按键分组后聚合所有对应的值即可。

完整可运行代码

// 定义输入数据集
def x = ['a', 'a', 'b', 'b', 'b']
def y = [1, 2, 3, 4, 5]

// 核心处理逻辑:列表配对 -> 按key分组 -> 提取每组的value集合
def groupResult = [x, y].transpose()
                  .groupBy { it[0] }
                  .collectEntries { key, pairList -> 
                      [key, pairList.collect { it[1] }] 
                  }

// 按要求格式输出
groupResult.each { k, v ->
    println "${k} = ${v.join(',')}"
}

运行输出

a = 1,2
b = 3,4,5

补充说明

  • 上述代码默认x和y长度一致,若需要做长度校验,可在配对前添加断言:assert x.size() == y.size()
  • 若x中的a、b为非字符串类型,只要对应类的equals和hashCode方法实现正常,代码无需调整即可直接使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:57:03