将两个字符串列表转换为对象列表使用第一个列表索引从第二个列表中获取值

Convert two string list to List of Object use first list index to get the value from Second list

我有点困惑如何使用 map 从两个字符串列表中获取对象列表。

举个例子: 清单 1:

var name = arrayListOf("name1","name2","name3")

列表 2:

var lastName = arrayListOf("lastName1","lastName2","lastName3")

姓名数据class如下

data class Names(
var name: String, 
var lastName: String
)

现在我想要 List,它是 name 和 lastName 的组合,我们在其中使用名称索引来获取 lastName。

作为输出的名称列表如下:

[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)]

(我认为你不需要 'reactive' 编程来做到这一点)

按照@Tenfour04 在评论中的建议,使用 constructor reference 有一个更短的方法。

name.zip(lastName, ::Names)