我有一个问题需要解决,RxJava似乎是一种处理这类事情的正确方法,但是我对所有这些不同的操作员都很失落,并且不确定哪一个会在我的情况下起作用。
我有以下类型的有限对象流:
java.io.NotSerializableException: dataaccess.ServerSide
我的目标 - 按时间戳对它们进行分组。让我们说每个新的小时新组都需要生成,所以我有一组代表每小时事件的组。
我查看了class MyObject {
long timestamp;
Object data;
}
运算符,但我不确定我是否完全理解键选择器和元素选择器概念。
答案 0 :(得分:2)
groupBy
这是一项简单明了的工作。键选择器允许您选择用于建立组的键。可以把它想象成GROUP BY
的SQL语句。值选择器让你在每个组中提取你想要观察的内容,而不需要是整个对象而只是它的一部分;这相当于SQL SELECT
。
根据您的情况,这就是它的完成方式:
source
.groupBy(
v -> v.timestamp / 3_600_000L ,
v -> v.data
);
这会给你一系列GroupedObservable<Long, Object>
。小时计算是基本的,根据您的环境,您可以使用jodatime或Java 8的新日期API来执行准确的计算。