Groovy позволяет решить эту проблему с помощью функционального подхода.Применяя преобразование сопоставления, вы можете сгенерировать список пар, содержащих число и его четность или нечетность.
Во всех списках groovy есть метод с именем collect
для сопоставления замыкания по каждому элементу.Возвращаемое значение представляет собой список, содержащий результат, вызываемый замыканием для каждого элемента.Например:
[1, 2, 3, 4].collect {
[it, it % 2 ? 'odd' : 'even']
}
===> [[1:odd], [2:even], [3:odd], [4:even]]
В результате получается список пар (фактически 2 списка элементов).Довольно часто требуется, чтобы результатом была карта, а не список, и у groovy есть специальная версия collect
, которая называется collectEntries
только для этого.Вот альтернатива, которая возвращает карту:
[1, 2, 3, 4].collectEntries {
[it, it % 2 ? 'odd' : 'even']
}
===> {1=odd, 2=even, 3=odd, 4=even}