Это на самом деле проще, чем вы думаете, например,
val foobars = lines.chunked(2) { (l1, l2) ->
FooBar( generateFoo(l1), generateBar(l2) )
}.toMutableList()
Отличие от потока Java заключается в том, что вы можете напрямую работать со списком (/ sequence / iterable) и получать новый ответный вызов каждый раз, когда вызываете что-то вроде chunked
, filter
, * 1006. *, toList
, toMutableList
и т. Д. Итак, после вызова chunked
(+ преобразование) вы получили новый список, содержащий преобразования. Затем вы можете преобразовать его в (новый) изменяемый список, просто вызвав toMutableList()
.
И если вам не нужно изменять список позже, вы можете просто пропустить toMutableList()
, и у вас уже есть список.