RxJava在SQL中的分组方式替代 [英] RxJava alternative of group by in sql

查看:84
本文介绍了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

该怎么做?

推荐答案

在组本身上使用groupByflatMapcount:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆