gpt4 book ai didi

java - 需要合适的数据结构的建议

转载 作者:行者123 更新时间:2023-12-02 04:28:43 26 4
gpt4 key购买 nike

Day1
Hour1
Minute1
​ Location1(i.e. lat,lon)
Location2
Minute2
Hour2
Hour3​
Day2
Hour1
Minute1
​ Minute2​
Hour2​

​有多个用户,其用户位置按时间戳(日期:小时:分钟:秒)。我需要将所有用户位置数据与时间堆叠起来,无论日期如何(即仅小时和分钟)

例如:将日常位置数据堆叠到 24 小时(24*60 分钟)时间线中。

我仅使用 24 个数组列表针对小时分辨率执行此操作,并检查每个时间戳的小时值,然后使用 switch 语句将每个相应的位置值分配给其中一个数组列表。

当进入分钟分辨率时,拥有 1440 (24*60) 数组列表是不切实际的。如果您能提出任何有效的方法来做到这一点,我将非常感激。我希望在解释我的问题时我已经说清楚了。

提前致谢,哈萨拉

编辑:以下是写入小时分辨率的代码。

//24 ArrayLists to store users with location according to hours of the day
ArrayList<Location> hour1 = new ArrayList<Location>();
ArrayList<Location> hour2 = new ArrayList<Location>();
ArrayList<Location> hour3 = new ArrayList<Location>();
ArrayList<Location> hour4 = new ArrayList<Location>();
ArrayList<Location> hour5 = new ArrayList<Location>();
ArrayList<Location> hour6 = new ArrayList<Location>();
ArrayList<Location> hour7 = new ArrayList<Location>();
ArrayList<Location> hour8 = new ArrayList<Location>();
ArrayList<Location> hour9 = new ArrayList<Location>();
ArrayList<Location> hour10 = new ArrayList<Location>();
ArrayList<Location> hour11 = new ArrayList<Location>();
ArrayList<Location> hour12 = new ArrayList<Location>();
ArrayList<Location> hour13 = new ArrayList<Location>();
ArrayList<Location> hour14 = new ArrayList<Location>();
ArrayList<Location> hour15 = new ArrayList<Location>();
ArrayList<Location> hour16 = new ArrayList<Location>();
ArrayList<Location> hour17 = new ArrayList<Location>();
ArrayList<Location> hour18 = new ArrayList<Location>();
ArrayList<Location> hour19 = new ArrayList<Location>();
ArrayList<Location> hour20 = new ArrayList<Location>();
ArrayList<Location> hour21 = new ArrayList<Location>();
ArrayList<Location> hour22 = new ArrayList<Location>();
ArrayList<Location> hour23 = new ArrayList<Location>();
ArrayList<Location> hour24 = new ArrayList<Location>();
//

//
void processToHours(){
for (int p=0;p<timeStamps.size();p++){
String time = timeStamps.get(p);
Location userLoc = new Location(Double.parseDouble(lat.get(p)),Double.parseDouble(lon.get(p)));
int hour = convertTime(time);
//
switch (hour) {
case 0: hour1.add(userLoc);
break;
case 1: hour2.add(userLoc);
break;
case 2: hour3.add(userLoc);
break;
case 3: hour4.add(userLoc);
break;
case 4: hour5.add(userLoc);
break;
case 5: hour6.add(userLoc);
break;
case 6: hour7.add(userLoc);
break;
case 7: hour8.add(userLoc);
break;
case 8: hour9.add(userLoc);
break;
case 9: hour10.add(userLoc);
break;
case 10: hour11.add(userLoc);
break;
case 11: hour12.add(userLoc);
break;
case 12: hour13.add(userLoc);
break;
case 13: hour14.add(userLoc);
break;
case 14: hour15.add(userLoc);
break;
case 15: hour16.add(userLoc);
break;
case 16: hour17.add(userLoc);
break;
case 17: hour18.add(userLoc);
break;
case 18: hour19.add(userLoc);
break;
case 19: hour20.add(userLoc);
break;
case 20: hour21.add(userLoc);
break;
case 21: hour22.add(userLoc);
break;
case 22: hour23.add(userLoc);
break;
case 23: hour24.add(userLoc);
break;
default: println("Invalid Time");
break;
}
//
}
}
//

最佳答案

我会使用Json string保存数据,然后当我需要数据时,我会解析字符串并相应地提取数据。

例如,我想要第 1 天、第 1 小时、第 1 分钟的数据...然后...编写函数:

List<String> GetLocation(String jsonStr, String dayNumber, String hrNumber, String miNumber){
List<String> locationList = new ArrayList<String>();
//extract data by parsing json
//add extracted location in list
return locationList;
}

注意:这种方法的缺点是每次需要特定数据时都必须解析JSON String

或者您可以根据数据使用的性质以最佳方式使用此功能。

关于java - 需要合适的数据结构的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31801653/

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