当前位置: 首页 > 知识库问答 >
问题:

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

邢硕
2023-03-14

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

让我们举个例子:列表1:

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

清单2:

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

名称的数据类如下

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

现在我想要一个列表,它是name和lastName的组合,我们使用name索引来获取lastName。

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

[Names(name=name1, lastName=lastName1), Names(name=name2, lastName=lastName2), Names(name=name3, lastName=lastName3)]

请求使用rx kotlin函数。通过使用集合很容易解决。

共有1个答案

康鹏云
2023-03-14

这是一个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)
 类似资料:
  • 我需要一个mapstruct映射,用于具有要以这种方式映射到目标类的对象列表的类:

  • 我最近开始处理Java流。我试图从我的一个SQL查询的结果集中获取字符串值。结果集只从数据库中选择一个字符串/Varchar列。 所以我做了: 或: 我相信地图具有将数据从一种类型转换为另一种类型的功能。在本例中,从对象到字符串,然后在字符串列表中收集它们。 但上面的代码显示了编译时错误:无法从对象转换为字符串列表。 请给我建议正确的做法,并说明我的理解有什么问题。

  • 问题内容: 如何从Python列表中的第一个字符串中获取第一个字符? 看来我可以使用,但不会给我第一个字符。 问题答案: 你几乎是对的。最简单的方法是 但 也可以。 你想 结束 的第一个字符(字符零)后,未 启动 的第一个字符(字符零),这是以后有什么在你的问题的手段的代码。

  • 鉴于 我有一个对象列表。 看起来像 我想将此转换为 i、 e.将个人类别整理成类别列表。 这是实现我想要的当前代码。 有什么方法可以使用流来做到这一点吗 这个问题在本质上类似于Group by和sum对象,比如SQLJavalambdas?但对我没有帮助,因为这里完成了聚合,而这里不是聚合。

  • 问题内容: 返回以下内容的最紧凑的方法是什么: 给定一个元组列表,返回一个由元组的第一个(或第二个,无关紧要)元素组成的列表。 对于: 返回的列表将是 问题答案: 如果需要同时使用zip

  • 问题内容: 我想使用Java 8技巧在一行中执行以下操作。 给定此对象定义: 和a ,我想得到a ,它是第一个列表中所有s对象的列表- 顺序相同。 我可以使用Java中的循环来做到这一点,但我相信Java8中应该有一个单行lambda可以做到这一点。我无法在线找到解决方案。也许我没有使用正确的搜索词。 有人可以为这种转换建议一个lambda或另一种线吗? 问题答案: 这应该可以解决问题: 也就是说