有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java根据它所包含的长“curTime”类字段将N的列表拆分为24(小时)

我有一个大小为N的arrayList,它包含一个类,其中存储的时间基于系统毫秒。我想浏览整个arrayList并将其分为一个小时的部分。它只能是从现在开始的最后24小时,可以追溯到24小时。但也可能有物品从过去24小时的窗口中掉落

我不敢相信我会问一个算法问题。谢谢你的帮助

大型arrayList基本上由以下项组成:

public class Item {
  private long date;
  private long otherData;
}

我正在使用以下命令在项目中保存日期:

System.currentTimeMillis()

同样,我想根据项目的“保存日期”将项目的arrayList拆分为24个单独的arrayList,这些项目在保存时使用了currentTimeMillis()

如果第一个/最新的/最近的桶正好在下一个小时结束,然后每一个小时结束,那就更酷了。换句话说,如果我在晚上7:25提出请求。。。如果第一个项目“bucket”只包含在过去25分钟内保存的条目,那就太棒了。然后,接下来的23个“物品桶”在一小时内(6:00PM,5:00PM…)被分解

再次感谢


共 (2) 个答案

  1. # 1 楼答案

    我会将当前系统时间转换为DateCalendar对象。利用它,我可以得到当前一小时的分钟数。然后我可以回到一个小时的开始,在每一个小时中重复。使用myDate.getTime()new Date(milliseconds)可以轻松地在Datemilliseconds之间切换

    计算出每个部分需要多少毫秒,然后减去

  2. # 2 楼答案

    一种分解时间块的方法是将时间转换为日历,并检查^{}。创建一个与bucket项的arrayList相对应的小时HashMap,然后简单地循环并将它们放入相应的列表中