Используя решение Adrian, но вместо того, чтобы увеличить 1, инкремент 10 или даже 100. Тогда вставки могут быть вычислены в половине различия того, между чем Вы вставляете, не имея необходимость обновлять все ниже вставки. Выберите число, достаточно большое для обработки среднего количества вставок - если ее слишком маленькое тогда необходимо будет отступить к обновлению всех строк с более высоким положением во время вставки.
You could also use the spread operator:
def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]
Согласно Groovy Quick Start , использование collect
будет собирать значения, возвращенные из закрытия.
Вот небольшой пример использования Groovy Shell:
groovy:000> ["a ", " b"].collect { it.trim() }
===> [a, b]
@ sepp2k я думаю, что работает в ruby
, и это работает в Groovy list = list.collect () {it.trim (); }
Если вам действительно нужно изменить список на месте, вы можете использовать list.eachWithIndex {item, idx -> list [idx] = item.trim ()}.
collect ( ) намного лучше.