假设我有这些对象的有限流
class Item {
private int id;
private List<Tag> tags;
}Flux<Item> publisher;假设以下是流中的项:
[
{"id": 1, "tags": [{"value":"A"}]},
{"id": 2, "tags": [{"value":"B"}]},
{"id": 2, "tags": [{"value":"C"}]},
]我想按id对它们进行分组,并将相应的值连接在一起。
[
{"id": 1, "tag": [{"value":"A"}]},
{"id": 2, "tag": [{"value":"B"}, {"value":"C"}]},
]如何在发布者上执行此操作
发布于 2021-02-12 06:43:02
您可以使用允许使用Map<K, Collection<T>>的collectMultimap
publisher.collectMultimap(Item::getId)
.subscribe(groupById -> System.out.println(groupById.toString()));输出:
{1=[{"value":"A"}], 2=[{"value":"B"}, {"value":"C"}]}https://stackoverflow.com/questions/66163709
复制相似问题