【发布时间】:2018-12-05 13:26:30
【问题描述】:
我想合并两个不同类型的列表并创建另一个列表,其中包含两个列表中的数据。此外,只有在标识符匹配时才应该合并(例如两个列表中的 id 匹配)
Employee(val employeeId: Int,
val employeeName: String,
val address: String)
LaptopInfo(val laptopId: Int,
val employeeId: String,
val team: String)
EmployeeLaptopInfo(val laptopId: Int,
val employeeId: String,
val employeeName: String,
val address: String)
所以有Employee 和LaptopInfo 的列表,我想仅当两个列表中的employeeId 匹配时才将EmployeeLaptopInfo 添加到List<EmployeeLaptopInfo>
val employeeLaptopInfoList = mutableListOf<EmployeeLaptopInfo>()
val employeeIds = employeeList.map { it.employeeId }.toSet()
lapTopInfoList.filter { employeeIds.contains(it.employeeId) }
.map {
val employeeLaptopInfo = EmployeeLaptopInfo(it.laptopId, laptopId.employeeId, "can't get info", "can't get info")
employeeLaptopInfoList.add(employeeLaptopInfo)
}
但是这样我就不会从两个列表中获取详细信息。有什么方法可以不使用 for 循环且高效地做到这一点。
【问题讨论】:
-
嗨 :) 您可能需要的功能是 zip。链接下的更多信息:kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/…
标签: android arraylist kotlin merge