RxKotlin COUNT 与 GROUP BY 和 return 列表
RxKotlin COUNT with GROUP BY and return a list
我有一个 Kotlin 中的重复元素列表,比如说:
val result = arrayListOf<String>("AA", "BB", "CC", "AA", "BB")
我想根据它们的值以及它们出现的次数对它们进行分组,因此输出将是成对的:
{"AA", 2}, {"BB", 2}, {"CC", 1}
我已经解决了在 Kotlin 中使用的问题,如下所示:
val ans = result.map { it.value }
.groupBy { it }
.map { Pair(it.key, it.value.size) }
.sortedByDescending { it.second }
我想在 RxKotlin 中编写相同的代码进行学习并尝试了以下但不知道如何应用 map
/flatMap
来实现结果。
val source = Observable.fromIterable(result)
source.groupBy{ it }.subscribe { showresult(it) }
尝试这样的事情:
source.groupBy { it }
.flatMapSingle { g -> g.count().map { Pair(g.getKey(), it) } }
.toSortedList { a, b -> b.second.compareTo(a.second) }
.subscribe { list -> println(list) }
我有一个 Kotlin 中的重复元素列表,比如说:
val result = arrayListOf<String>("AA", "BB", "CC", "AA", "BB")
我想根据它们的值以及它们出现的次数对它们进行分组,因此输出将是成对的:
{"AA", 2}, {"BB", 2}, {"CC", 1}
我已经解决了在 Kotlin 中使用的问题,如下所示:
val ans = result.map { it.value }
.groupBy { it }
.map { Pair(it.key, it.value.size) }
.sortedByDescending { it.second }
我想在 RxKotlin 中编写相同的代码进行学习并尝试了以下但不知道如何应用 map
/flatMap
来实现结果。
val source = Observable.fromIterable(result)
source.groupBy{ it }.subscribe { showresult(it) }
尝试这样的事情:
source.groupBy { it }
.flatMapSingle { g -> g.count().map { Pair(g.getKey(), it) } }
.toSortedList { a, b -> b.second.compareTo(a.second) }
.subscribe { list -> println(list) }