Обновить
0

Пользователь

Отправить сообщение

По мне так и то и то динамическое, только рассматриваемый способ более гибкий и кастомизируемый.

Поспешил с предыдущим комментарием, поправил, в итоге:

fun getResultList() = 
      getFeatures()
        .groupBy { it.categoryId }
        .let { getCategories()
                 .flatMap { category ->
                            listOf(category,
                                   *it[category.categoryId]?
                                      .toTypedArray()?:emptyArray(),
                                    category.categoryId
                                  )
                           }
             }

Решение в итоге красивое. Попробовал чуть оптимизировать производительность:

fun getResultList() = getFeatures().associateBy { it.categoryId }
.let {
getCategories().flatMap { category ->
listOf( category,
it[category.categoryId],
category.categoryId
) }
}

Не понял фразы начет Dispatchers.Unconfined - Корутина будет продолжена на том же потоке, на котором была запущена.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Java
Apache Maven
ООП
Docker
Git
SQL
Базы данных
REST
Spring Boot
Junit