小编ven*_*sai的帖子

在groovy中生成2d列表元素的组合

我有一个2d列表,其中行数介于1到5之间,每行中的多个元素是动态的.我们假设我有一个列表

values = [[1,2,3], [4,5],[6,7,8,9]];

result = [[1,4,6],[1,4,7],[1,4,8],[1,4,9],[1,5,6],[1,5,7],[1,5,8],[1,5,9],[2,4,6],[2,4,7],[2,4,8],[2,4,9],[2,5,6],[2,5,7],[2,5,8],[2,5,9],[3,4,6],[3,4,7],[3,4,8],[3,4,9],[3,5,6],[3,5,7],[3,5,8],[3,5,9]]
Run Code Online (Sandbox Code Playgroud)

值是我的输入,我需要以结果的格式输出.

我尝试以递归方式实现函数但失败了.我的功能是

import groovy.transform.Field

List lines = [];
def function(row, col, lines)
{       
    if(row >= values.size())
    {           
        log.info("This should go inside result: " + lines);
        return;     
    }
    if(col >= values[row].size())
    {           
        return;         
    }   

    lines << values[row][col];  
    function(row+1,col,lines);
    lines.pop();
    function(row,col+1,lines);  
    return;
}


@Field
List values = [[1,2,3],[4,5],[6,7,8,9]];

@Field
List lst = [];


for(int i=0; i<values[0].size(); i++)
    function(0, i, lines)
Run Code Online (Sandbox Code Playgroud)

recursion groovy list

4
推荐指数
1
解决办法
94
查看次数

标签 统计

groovy ×1

list ×1

recursion ×1