Как хранить данные в списке из 2-х циклов? - PullRequest
0 голосов
/ 31 марта 2020

Итак ... Я пытаюсь сохранить данные в списке из 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
    }

Я создал класс под названием «Фрукты», который получает и устанавливает, что я собираюсь реализовать их при создании списка

Так что-то вроде fruitList.add(Fruits("banana", "color"))

Так что любая идея, как я могу сделать это?

1 Ответ

2 голосов
/ 31 марта 2020

Используйте 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) 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...