gpt4 book ai didi

collections - 如何从 “chunked” block 构建列表?

转载 作者:行者123 更新时间:2023-12-02 13:09:17 28 4
gpt4 key购买 nike

我正在处理“交替”行中的输入数据。

为了更好地处理此问题,我(和SO)提出了以下代码:

val foobars = mutableListOf<FooBar>()

lines.chunked(2) { (l1, l2) ->
foobars.add( FooBar( generateFoo(l1), generateBar(l2) )
}

上面的方法有效,但是首先创建一个空列表,然后追加到列表中以“收集”新创建的对象似乎有些奇怪。

如果这将是Java流,则使用List收集器将使“收集”部分更为简单。

现在,我想知道是否有更优雅/规范的方式来收集Kotlin中的 list 项目?

最佳答案

实际上比您想的要简单,例如

val foobars = lines.chunked(2) { (l1, l2) ->
FooBar( generateFoo(l1), generateBar(l2) )
}.toMutableList()

与Java流的不同之处在于,您实际上可以直接在列表(/序列/可迭代)上进行操作,并且每次调用 chunkedfiltermaptoListtoMutableList等时,都会得到一个新的列表。调用 chunked(+转换)后,您将获得一个包含转换的新列表。然后,只需调用 toMutableList(),就可以将其转换为(新的)可变列表。

而且,如果您以后不需要更改列表,则可以跳过 toMutableList()而已拥有列表。

关于collections - 如何从 “chunked” block 构建列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038382/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com