如何将数据存储在 2 个 for 循环的列表中?

How to store the data in a list from 2 for loops?

所以...我正在尝试将来自 2 个不同 for 循环的数据存储到列表中。原因是我从 2 个不同的表中检索数据,因为在 Azure-Android SDK 中还没有实现表的连接。

目前,我有,

for(results in tableOne) {
    val banana: String = results.asJsonObject.getAsJsonPrimitive("fruit").asString
}

for(results in tableTwo) {
        val yellow: String = results.asJsonObject.getAsJsonPrimitive("color").asString
    }

我创建了一个名为 "Fruits" 的 class,它获取并设置我将在创建列表时实现它们

所以像 fruitList.add(Fruits("banana", "color"))

知道我该怎么做吗?

使用map将一种类型的列表更改为另一种类型的列表。使用 zip 将两个列表的结果组合成一个新的单个列表。因此,您可以将 JSON 个结果列表映射到字符串列表,然后将它们合并。

val fruitTypes = tableOne.map { it.asJsonObject.getAsJsonPrimitive("fruit").asString }
val colors = tableTwo.map { it.asJsonObject.getAsJsonPrimitive("color").asString }
val fruits = fruitTypes.zip(colors) { fruitType, color -> Fruit(fruitType, color) }

编辑:您可以在一个步骤中更有效地完成此操作:

val fruits = tableOne.zip(tableTwo) { fruitTypeJson, colorJson -> 
    val fruitType = fruitTypeJson.asJsonObject.getAsJsonPrimitive("fruit").asString
    val color = colorJson .asJsonObject.getAsJsonPrimitive("color").asString
    Fruit(fruitType, color) 
}