2017-09-13 47 views
1

以前我是用這個代碼:分配值ArrayList的使用mapTo

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

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

現在,我使用的是類,而不是Int,但類與名idInt成員。

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 
//? 

回答

5

mapTo documentation

適用的給定的變換函數到原始集合中的每個元素和附加的結果,給定的目標。

因此,你只需要返回你想要的元素:

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

如果你都OK與任何MutableList(這往往是ArrayList或類似):

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

我不看到一個像這樣工作的構造函數,我不能編譯它。我錯過了什麼嗎? – chris

+0

你說得對,它只適用於'MutableList',對不起 – voddan

+0

啊,有道理。 – chris