Kotlin 流排序
Kotlin Flow sort
有没有办法按照自定义顺序对流发出的集合进行排序,例如:
fun getList():Flow<Something>
fun main(){
launch{
getList().filter{}.map{}.sortBy{
//
}.toList()
}
}
可以先toList()
再sortBy()
。对流进行排序并不总是有意义,因为根据定义,流不知道流中是否还会有更多元素。
您可以应用一些这样的操作:
getList().transform {
//it - list
// sortedList - some function to perform sorting or something else
emit(sortedList(it))
}
UPD:您也可以使用map(类似于“transform”,但更简单)和filter(它用于仅发出流的特定值)函数来执行一些操作。 “转换”功能允许您执行更具体的操作。在那种情况下,它们是相同的。
getList().map {
sortedList(it)
}
有没有办法按照自定义顺序对流发出的集合进行排序,例如:
fun getList():Flow<Something>
fun main(){
launch{
getList().filter{}.map{}.sortBy{
//
}.toList()
}
}
可以先toList()
再sortBy()
。对流进行排序并不总是有意义,因为根据定义,流不知道流中是否还会有更多元素。
您可以应用一些这样的操作:
getList().transform {
//it - list
// sortedList - some function to perform sorting or something else
emit(sortedList(it))
}
UPD:您也可以使用map(类似于“transform”,但更简单)和filter(它用于仅发出流的特定值)函数来执行一些操作。 “转换”功能允许您执行更具体的操作。在那种情况下,它们是相同的。
getList().map {
sortedList(it)
}