【发布时间】:2019-03-17 22:10:44
【问题描述】:
我需要帮助来了解如何在 java 中找到当前在 sql 中完成的内容。我需要使用流在特定时间段内的列表中查找特定数据
场景: 我有一个带有字符串 CustId、即时时间戳、双倍 betAmount 的 Bet 对象
我需要找到每 24 小时超过 100.00 个限制的所有客户,我将如何在 Java 8 中做到这一点?
方法是
public List<String> findLimits(List<Bet> bets){
...
}
样本数据:
note: to be parsed in List<Bet>
A00001 2019-01-15T02:01:10 43.00
A00001 2019-01-15T04:00:00 13.00
A00001 2019-01-15T04:01:15 50.00
B00034 2019-01-15T05:00:00 15.00
A00001 2019-01-15T06:56:20 5.00
B00034 2019-01-15T06:57:00 20.00
C00004 2019-01-15T07:01:00 90.00
C00004 2019-01-15T07:11:00 30.00
B00034 2019-01-17T01:00:00 90.00
预期结果:
["A00001","C00004"] (List<String>)
注意:该列表将包含所有具有不同客户 ID 和时间时间戳的投注
滑动的 24 小时周期和对客户进行分组是我正在尝试解决的一个棘手问题。
【问题讨论】:
-
按客户 ID 分组;然后过滤条目集以仅包含与您的标准匹配的值;然后丢弃这些值。 “匹配你的标准”位可以只是一个简单的方法,它使用两个指针在点上滑动,跟踪指针之间的赌注总和。
-
这个关于滑动窗口流操作的答案对stackoverflow.com/a/34159174/2615510有帮助吗?