2

有没有办法按自定义顺序对流发出的集合进行排序,例如:

fun getList():Flow<Something>

fun main(){
   launch{
       getList().filter{}.map{}.sortBy{
                //
       }.toList()
   }
}
4

2 回答 2

7

你可以toList()先,然后sortBy()。对流进行排序并不总是有意义的,因为根据定义,流不知道流中是否还会有更多元素。

于 2020-03-15T09:21:40.680 回答
1

您可以应用一些类似的操作:

getList().transform {
    //it - list
    // sortedList - some function to perform sorting or something else
    emit(sortedList(it))
}

UPD:您也可以使用 map(类似于“transform”,但更简单)和 filter(它用于仅发出流的特定值)函数来执行一些操作。“转换”功能允许您执行更具体的操作。在这种情况下,它们是相同的。

getList().map {
    sortedList(it)
}
于 2020-12-11T14:52:33.593 回答