RxJava中的groupBy,是将一个Observable分拆为一些Observables集合,它们中的每一个发射原始Observable的一个 子序列,哪个数据项由哪一个Observable发射是由一个函数判定 的,这个函数给每一项指定一个Key,Key相同的数据会被同一个Observable发射。
先看个示例,就明白了:
ArrayList<Object> list = new ArrayList<Object>();
list.add(new Person());
list.add(new Person());
list.add(new Student());
list.add(new Student());
list.add(new Person());
list.add(new Student());
list.add(new Student());
Observable.from(list)
.groupBy(new Func1<Object, Integer>() {
@Override
public Integer call(Object o) {
if (o.getClass().getName().equals(Person.class.getName())) {
return 1;