RxJava在SQL中的分组方式替代 [英] RxJava alternative of group by in sql
本文介绍了RxJava在SQL中的分组方式替代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Student
的列表:
Observable<Student> source = Observable.fromIterable(getStudentList());
我想按邮政编码以及它们出现的次数对它们进行分组,但是问题是我使用的是Java 7
I would like to group them by postal code, along with how many times they appear, but the problem is that I use java 7
该怎么做?
推荐答案
在组本身上使用groupBy
,flatMap
和count
:
source.groupBy(s -> s.postalCode)
.flatMapSingle(g ->
g.count()
.map(v -> g.getKey() + ": " + v))
;
如果没有lambda,它看起来会更难看:
Without lambdas it looks more ugly though:
source.groupBy(new Function<Student, String>() {
@Override public String apply(Student s) {
return s.postalCode;
}
})
.flatMapSingle(new Function<GroupedObservable<String, Student>, Single<String>>() {
@Override public String apply(final GroupedObservable<String, Student> group) {
return group.count().map(new Function<Long, String>() {
@Override public String apply(Long count) {
return group.getKey() + ": " + count;
}
});
}
});
这篇关于RxJava在SQL中的分组方式替代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文