在Java中存储和保存星期/时间 - 值对

时间:2013-03-24 07:30:53

标签: java android collections

我正在从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或类似的东西,存储这些信息的好方法。

3 个答案:

答案 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中保存的任何数据,而不是另一个列表/地图/其他集合 您现在需要编写一个实用程序,它将在枚举时间字段上对存储的地图进行排序。 这样,您可以通过指定日期和时间来获取下一个元素。