我正在从webpage抓取一些数据,并希望将其保存在结构中。我的数据是一组日/时间值对示例:
Monday 07:15 312
Monday 07:20 553
Monday 09:55 312
Tuesday 09:55 312
我不需要存储日期,只需要存储星期几和24小时。我想能够查询这个集合以获得下一对。例如,如果我查询它Tuesday, 07:00
,我应该得到下一个最接近的记录,即Tuesday, 09:55
。
我很遗憾,如果不采用SQLite或类似的东西,存储这些信息的好方法。
答案 0 :(得分:1)
在Java中,我会选择一个树形图,在那里我可以将每月的日期存储为Key和time作为其值。这一天可以是存储周一,周二,周三,周四,周五,周六和周日七个值的枚举,而值可以是存储小时和分钟的时间戳。
该集合将是一个已排序的哈希映射或一个树映射(或一个排序的EnumMap,它会比其他两个选项更好)。
希望这会有所帮助:)
答案 1 :(得分:0)
我接受了Panky1986的建议,并使用包含EnumMap
的{{1}}来存储小时数,并使用嵌套的TreeMap
来存储分钟,然后存储数据。
TreeMap
答案 2 :(得分:0)
只是为了进一步澄清。使用枚举映射来存储数据。只需像这样修改你的枚举 public enum DAYTIME { 星期一(System.currentTimeMillis的()),周二(System.currentTimeMillis的()),OTHER_WEEKDAYS(System.currentTimeMillis的());
DAYTIME(Long time) {
this.time = time;
}
private final Long timeInMillis;
public Long getTimeInMillis() {
return time ;
}
}
现在调用的DayTime将返回包含日期和当前时间戳的枚举。我认为这符合时间存储方面的要求。
你的EnumMap会是这样的
private EnumMap<DAYTIME, Object> mapDays;
此处Object表示您希望在db中保存的任何数据,而不是另一个列表/地图/其他集合 您现在需要编写一个实用程序,它将在枚举时间字段上对存储的地图进行排序。 这样,您可以通过指定日期和时间来获取下一个元素。