我希望同时获取 myList 的 MSetting 的名称和 _id ,并填写条目和 entryValues 与他们,我怎么能在Kotlin做?
目前,我必须使用代码A来完成它,但它太复杂了!
代码A
for(aMetting in myList){
entries.add(aMetting.name)
entriesValue.add(aMetting._id)
}
来源
var entries = arrayOf<CharSequence>()
var entryValues = arrayOf<CharSequence>()
var myList: List<MSetting>
data class MSetting (
var _id: Long,
var name: String,
var createdDate: Long,
var description: String
)
答案 0 :(得分:1)
我不知道您是否真的需要将_id
和name
放在两个不同的数组中。但是,为此,您可以使用forEach
声明:
myList.forEach { it -> entries.add(it.name); entriesValue.add(it._id) }
但是如果你想放弃_id
和name
关系。您可以使用Pair
结构。
val entries = mutableListOf<Pair<CharSequence, CharSequence>>()
myList.forEach { it -> entries.add(Pair(it._id, it.name)) }
使用Map
是另一种选择,但如果您拥有密钥并希望查找值,则建议使用此选项。迭代所有条目,没有任何有意义的差异。
答案 1 :(得分:0)
我认为不是使用单独的数组,而是可以将它放在Map
中 val settingMap = hashMapOf ( name to id )
或
val map = mutableMapOf<Integer, String>()
for((key, value) in settingMap){
println(value)
}
希望它有所帮助。
答案 2 :(得分:0)
import java.util.*
var myList = ArrayList<MSetting>()
var entryMap = HashMap<Long, String>()
data class MSetting (
var _id: Long,
var name: String,
var createdDate: Long,
var description: String
)
fun main(args: Array<String>) {
myList.forEach { entryMap.put(it._id, it.name) }
}