使用mapTo为ArrayList赋值

Ami*_*lan 2 arraylist kotlin

以前我使用的是这段代码:

private val mItems = ArrayList<Int>()
(1..item_count).mapTo(mItems) { it }

/*
 mItems will be: "1, 2, 3, 4, 5, ..., item_count"
*/
Run Code Online (Sandbox Code Playgroud)

现在,我使用的是一个类而不是Int,但该类具有Int名称的成员id.

class ModelClass(var id: Int = 0, var status: String = "smth")
Run Code Online (Sandbox Code Playgroud)

那么我如何使用这种方法以ArrayList类似的方式填充?

//?
private val mItems = ArrayList<ModelClass>()
(1..item_count).mapTo(mItems) { mItems[position].id = it } // Something like this
//?
Run Code Online (Sandbox Code Playgroud)

chr*_*ris 5

mapTo文档:

将给定的转换函数应用于原始集合的每个元素,并将结果附加到给定目标.

因此,您只需要返回所需的元素:

(1..item_count).mapTo(mItems) { ModelClass(it) }
Run Code Online (Sandbox Code Playgroud)