有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法使用group by订阅

我尝试了许多示例,但都没有成功,我只想使用以下代码以列表的形式接收分组结果:

  private final PublishSubject<MyObject> s;

  public RabbitMQConsumer() {
    s = PublishSubject.create();
    s.groupBy(x -> x.getName())
    .flatMapSingle(x -> x.toList())
    .subscribe(x -> System.out.println(x));
  }

这应该像示例所说的那样起作用,但是它从不打印任何内容。如果我删除groupby,它将开始打印输入值

你知道我做错了什么吗


共 (1) 个答案

  1. # 1 楼答案

    我为你的代码做了一个示例代码,效果很好

    List<String> list = Arrays.asList("AN", "BL", "CL", "DO", "AK", "LL", "BO", "DL");
    Observable.fromIterable(list).groupBy(x -> x.charAt(0))
            .flatMapSingle(x -> x.toList())
            .subscribe(x -> System.out.println(x));
    

    输出如下:

    [AN, AK]
    [BL, BO]
    [CL]
    [DO, DL]
    [LL]
    

    为什么不重写onError()以查看是否发生了错误