gpt4 book ai didi

java - 更快的分组时间方法

转载 作者:行者123 更新时间:2023-11-29 05:39:28 26 4
gpt4 key购买 nike

我收到一个充满数据的 json 对象,使用此数据的任务之一是将时间分组。

例如,如果 GAME_TIME 是 12:15 PM,它应该在 12 PM 标题下。

我想出了一个解决方案,但它是一个怪物并且很难调试,必须有更好的方法来做到这一点。

    DbDate = DateFormatter.parse(json_data.getString("GAME_TIME"));

if (DbDate.compareTo(DateFormatter.parse("12:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("1:00 AM") ) < 0) {
Users12AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("1:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("2:00 AM")) < 0) {
Users1AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("2:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("3:00 AM")) < 0) {
Users2AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("3:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("4:00 AM")) < 0) {
Users3AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("4:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("5:00 AM")) < 0) {
Users4AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("5:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("6:00 AM")) < 0) {
Users5AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("6:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("7:00 AM")) < 0) {
Users6AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("7:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("8:00 AM")) < 0) {
Users7AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("8:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("9:00 AM")) < 0) {
Users8AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("9:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("10:00 AM")) < 0) {
Users9AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("10:00 AM")) == 0 || DbDate.compareTo(DateFormatter.parse("11:00 AM")) < 0) {
Users10AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("11:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("12:00 PM")) < 0) {
Users11AM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("12:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("1:00 PM")) < 0) {
Users12PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("1:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("2:00 PM")) < 0) {
Users1PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("2:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("3:00 PM")) < 0) {
Users2PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("3:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("4:00 PM")) < 0) {
Users3PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("4:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("5:00 PM")) < 0) {
Users4PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("5:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("6:00 PM")) < 0) {
Users5PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("6:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("7:00 PM")) < 0) {
Users6PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("7:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("8:00 PM")) < 0) {
Users7PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("8:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("9:00 PM")) < 0) {
Users8PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("9:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("10:00 PM")) < 0) {
Users9PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("10:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("11:00 PM")) < 0) {
Users10PM.add(json_data.getString("IN_GAME_NAME"));
} else if (DbDate.compareTo(DateFormatter.parse("11:00 PM")) == 0 || DbDate.compareTo(DateFormatter.parse("12:00 PM")) < 0) {
Users11PM.add(json_data.getString("IN_GAME_NAME"));
}

最佳答案

大概您可以从 DbDate 中提取小时对象,无论那是什么。将其转换为 24 小时制。如果你不能 Calendar当然可以为您做到这一点。

将小时提取为 0 - 23,将其用作 Map 的键, 存储 String 的列表在 Map 中.完成。

Map<Integer, List<String>> myMap = new HashMap<Integer, List<String>>();
...

// `hour` here represents the 24hr value described above
List<String> list = myMap.get(hour);
if (null == list)
{
// There's no List for this hour - create and insert it.
list = new ArrayList<String>();
myMap.put(hour, list);
}
list.add(json_data.getString("IN_GAME_NAME"));

如果您想跳过 null检查位并确保有 List每小时,预填充 Map使用循环,创建并插入 List<String>每小时 0 - 23。

关于java - 更快的分组时间方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com