Как изменить список на twodarray или listOflist, как показано ниже, используя groovy? - PullRequest
0 голосов
/ 30 апреля 2018

Здесь объект похож,

Input

def mylist = ['a','b',['c1','c2','c3'],'d',['e1','e2','e3']]

Как получить это как массив twod, как показано ниже,

Ожидаемый результат

[['a','b','c1','d','e1'],
['a','b','c2','d','e2'],
['a','b','c3','d','e3']]

1 Ответ

0 голосов
/ 30 апреля 2018

Не зная других деталей, решение для удовлетворения результата будет:

def mylist = ['a','b',['c1','c2','c3'],'d',['e1','e2','e3']]
int max = mylist.collect{ String == it.getClass() ? 1 : it.size() }.max()

def result = (0..<max).collect{ ix ->
  mylist.collect{ String == it.getClass() ? it : it[ ix ] }
}

assert result == [['a','b','c1','d','e1'], 
                  ['a','b','c2','d','e2'], 
                  ['a','b','c3','d','e3']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...