Pull to refresh
0
Send message

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

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

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 - Корутина будет продолжена на том же потоке, на котором была запущена.

Information

Rating
Does not participate
Registered
Activity

Specialization

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