Rx java 收集分组观察值';将排放纳入一个清单

Rx java 收集分组观察值';将排放纳入一个清单,rx-java,Rx Java,我有以下用例(这当然是一个人为的例子,但一旦我知道答案,我将能够将其移植到我要解决的实际问题): 获取整数列表 根据%4操作的结果对它们进行分组 将每个组的元素收集到列表中 忽略元素少于3个的任何组/列表 发出一个列表,其元素为步骤3中创建的列表 这是我目前的代码: 可观察 .from(数组.asList(0,1,2,3,4,5,6,7,8,10,11,12)) .groupBy(项目->项目%4) .订阅(groupedObservable->{ 群可观测 托利斯先生() .filter(li

我有以下用例(这当然是一个人为的例子,但一旦我知道答案,我将能够将其移植到我要解决的实际问题):

  • 获取整数列表
  • 根据%4操作的结果对它们进行分组
  • 将每个组的元素收集到列表中
  • 忽略元素少于3个的任何组/列表
  • 发出一个列表,其元素为步骤3中创建的列表
  • 这是我目前的代码:

    可观察
    .from(数组.asList(0,1,2,3,4,5,6,7,8,10,11,12))
    .groupBy(项目->项目%4)
    .订阅(groupedObservable->{
    群可观测
    托利斯先生()
    .filter(list->list.size()>2)
    .订阅(结果->{
    System.out.printf(“%d个结果%s%n”,result.size(),result);
    });
    });
    
    其输出为:

    4 results [0, 4, 8, 12]
    3 results [2, 6, 10]
    3 results [3, 7, 11]
    
    所以它打印出每个组有多少个元素,然后是元素列表。我希望输出是(我实际上不关心键):

    3个结果:[[0,4,8,12],[2,6,10],[3,7,11]]


    i、 e.以某种方式将分组的可观测值平铺成一个列表。我没有这样做。例如,在
    过滤器
    之后添加
    .flatMap(integers->Observable.just(integers))
    不会改变任何东西,因为它只会影响每个分组的可观察对象,而不是整个流。有什么方法可以满足我的要求吗?

    我不确定我是否正确理解了您,但根据所需的输出,这里是您可能需要的代码:

    publicstaticvoidmain(最终字符串[]args)引发异常{
    从(数组.asList(0,1,2,3,4,5,6,7,8,10,11,12))
    .groupBy(项目->项目%4)
    .flatMap(可观察::toList)
    .filter(整数->整数.size()>2)
    托利斯先生()
    .订阅(结果->{
    System.out.printf(“%d个结果%s%n”,result.size(),result);
    });
    }
    
    我不确定我是否正确理解了您的意思,但这里有一个要点,可以产生您想要的输出-这正是我想要得到的。当你用代码写一个答案以便我能接受时,我会尽力理解它;我把平面图放错地方了。非常感谢。你在这方面很在行;D