使用mapTo为ArrayList赋值

时间:2017-09-13 12:58:48

标签: arraylist kotlin

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

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

/*
 mItems will be: "1, 2, 3, 4, 5, ..., item_count"
*/

现在,我使用的是课程而不是Int,但该课程的成员Int名称为id

class ModelClass(var id: Int = 0, var status: String = "smth")

那么如何使用此方法以类似的方式填充ArrayList

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

2 个答案:

答案 0 :(得分:5)

来自mapTo documentation

  

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

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

(1..item_count).mapTo(mItems) { ModelClass(it) }

答案 1 :(得分:2)

如果您对任何MutableList(通常为ArrayList或类似)感到满意,那么:

val mItems1 = MutableList(item_count) { i -> i }
val mItems2 = MutableList(item_count) { ModelClass(it) }