RxJava2将Id对象分组到HaspMap并对它们进行排序

时间:2017-06-02 12:14:59

标签: android group-by observable reactive-programming rx-java2

我有Observable返回

List<Item>

每件物品都有

long groupId
long dateMillis

我想将该列表分组到

HashMap<groupId, <List<Item>>

每个地图条目中的排序项目由dateMillis。

有人可以帮我做吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

你可以这样做:

    Observable<List<Item>> listObservable;
    listObservable.flatMap(Observable::from)
            .toSortedList((item, item2) -> Long.compare(item.dateMillis, item2.dateMillis))
            .flatMap(Observable::from)
            .subscribe(item -> addToHashMap(item));

排序列表,稍后将项目添加到地图。