根据它包含的 long "curTime" class 字段将 N 的列表拆分为 24(小时)
Split a list of N into 24(for hours) based on the long "curTime" class field it contains
我有一个大小为 N 的数组列表,其中包含一个 class,其中存储了基于系统毫秒的时间。我想遍历整个 arrayList 并将其分成一小时的块。只能是从现在开始往前24小时过去的24小时。不过,可能有些项目在过去 24 小时内丢失 window。
我不敢相信我在问关于 SO 的算法问题。感谢您的帮助。
大型 arrayList 基本上由以下项目组成:
public class Item {
private long date;
private long otherData;
}
我使用以下方法在项目中保存日期:
System.currentTimeMillis()
同样,我想根据在保存时使用 currentTimeMillis() 的 "save date" 将项目数组列表拆分为 24 个单独的项目数组列表。
如果 first/newest/most 最近的存储桶恰好在下一个小时标记结束,然后每隔一小时结束,那就更酷了。换句话说,如果我在 7:25PM 处发出请求...如果第一个项目 "bucket" 仅包含在过去 25 分钟内保存的条目,那就太棒了。然后,接下来的 23 "bucket of Items" 在小时(6:00PM,5:00PM...)被分解。
再次感谢。
分解块的一种方法是将时间转换为日历并检查 HOUR_OF_DAY
。创建一个与存储桶项目的 arrayList 相对应的小时 HashMap,然后简单地循环并将它们放入相应的列表中。
我会将当前系统时间转换为 Date
或 Calendar
对象。使用它我可以获得当前小时的分钟数。然后我可以回到小时的开始,并在每个小时内迭代。您可以使用 myDate.getTime()
和 new Date(milliseconds)
轻松地在 Date
和 milliseconds
之间切换
算出每个部分需要多少毫秒并减去。
我有一个大小为 N 的数组列表,其中包含一个 class,其中存储了基于系统毫秒的时间。我想遍历整个 arrayList 并将其分成一小时的块。只能是从现在开始往前24小时过去的24小时。不过,可能有些项目在过去 24 小时内丢失 window。
我不敢相信我在问关于 SO 的算法问题。感谢您的帮助。
大型 arrayList 基本上由以下项目组成:
public class Item {
private long date;
private long otherData;
}
我使用以下方法在项目中保存日期:
System.currentTimeMillis()
同样,我想根据在保存时使用 currentTimeMillis() 的 "save date" 将项目数组列表拆分为 24 个单独的项目数组列表。
如果 first/newest/most 最近的存储桶恰好在下一个小时标记结束,然后每隔一小时结束,那就更酷了。换句话说,如果我在 7:25PM 处发出请求...如果第一个项目 "bucket" 仅包含在过去 25 分钟内保存的条目,那就太棒了。然后,接下来的 23 "bucket of Items" 在小时(6:00PM,5:00PM...)被分解。
再次感谢。
分解块的一种方法是将时间转换为日历并检查 HOUR_OF_DAY
。创建一个与存储桶项目的 arrayList 相对应的小时 HashMap,然后简单地循环并将它们放入相应的列表中。
我会将当前系统时间转换为 Date
或 Calendar
对象。使用它我可以获得当前小时的分钟数。然后我可以回到小时的开始,并在每个小时内迭代。您可以使用 myDate.getTime()
和 new Date(milliseconds)
Date
和 milliseconds
之间切换
算出每个部分需要多少毫秒并减去。