如何将数据存储在 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)
}
所以...我正在尝试将来自 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)
}