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



使用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)

相关内容

  • 没有找到相关文章

最新更新