使用map从两个字符串列表中获取对象列表,我有点困惑。
举个例子:列表1:
var name = arrayListOf("name1","name2","name3")
列表2:
var lastName = arrayListOf("lastName1","lastName2","lastName3")
Names的数据类如下
data class Names(
var name: String,
var lastName: String
)
现在我想要的List是name和lastName的组合,我们使用name索引来获取lastName。
作为输出的name列表如下:
[Names(name=name1, lastName=lastName1), Names(name=name2, lastName=lastName2), Names(name=name3, lastName=lastName3)]
请求使用rx kotlin函数。使用集合很容易解决。
这是一个zip
操作:
var name = arrayListOf("name1","name2","name3")
var lastName = arrayListOf("lastName1","lastName2","lastName3")
data class Names(
var name: String,
var lastName: String
)
fun main() {
println(name.zip(lastName) {n, f -> Names(n, f)} )
}
输出[Names(name=name1, lastName=lastName1), Names(name=name2, lastName=lastName2), Names(name=name3, lastName=lastName3)]
(我不认为你需要"响应式"编程来做到这一点)
有一种更短的方法,使用构造函数引用,就像@Tenfour04在评论中建议的那样。
name.zip(lastName, ::Names)