Apakah ada cara untuk mengurutkan koleksi yang dipancarkan oleh aliran dalam urutan khusus seperti:

fun getList():Flow<Something>

fun main(){
   launch{
       getList().filter{}.map{}.sortBy{
                //
       }.toList()
   }
}
1
Luca 15 Maret 2020, 12:11

2 jawaban

Jawaban Terbaik

Anda dapat menerapkan beberapa tindakan seperti itu:

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

UPD: Anda dapat menggunakan map (mirip dengan "mengubah", tetapi lebih sederhana) dan filter (digunakan untuk memancarkan hanya nilai-nilai tertentu dari aliran) berfungsi juga untuk melakukan beberapa tindakan. Fungsi "transformasi" memungkinkan Anda melakukan tindakan yang lebih spesifik. Dalam hal ini mereka sama.

getList().map {
    sortedList(it)
}
1
Viktor 24 Desember 2020, 13:27

Anda dapat toList() terlebih dahulu dan kemudian sortBy(). Menyortir aliran tidak selalu masuk akal karena aliran, menurut definisi, tidak tahu apakah akan ada elemen lagi dalam aliran.

5
curioustechizen 15 Maret 2020, 09:21