#list #loops #groovy
#Список #циклы #groovy
Вопрос:
Это то, что я пытаюсь сделать.
Внутри цикла я генерирую элементы списка в формате [a, 1]. Первый элемент — это строка, второй — число. Как только у меня будут все списки из цикла, мне нужно поместить это в другой список. пример -> [[a,1],[b,2],[c,3]]
Это мой пример кода, который я пробовал, хотя и только с элементом int. К сожалению, я не могу получить то, что ищу. Должно быть что-то простое, что я упускаю из виду.
a = [1,2]
b = []
c = []
a.each
{
b.clear()
b.add(it)
println b
c.add(b)
}
println c
Генерируемый результат является
[1]
[2]
[[2], [2]]
Я пытаюсь получить
[1]
[2]
[[1], [2]]
Редактировать
После помощи от Александра
a = [1,2]
c = []
a.each
{
b = []
b.add(it)
c.add(b)
}
println c
Ответ №1:
Наткнулся на более простой способ добиться этого. С помощью collate()
a = [1,2]
a.collate(1)
Результат
[[1],[2]]
Ответ №2:
Вы вставляете в c ссылку на один и тот же список дважды. Следовательно, вы получаете то, что вы вкладываете.
Попробуйте заменить b.clear()
на b = []
Тогда это будет новый список.
Комментарии:
1. Спасибо. Любые предложения, как я могу получить результат, который я ищу.