我有一个对象列表,其中包含不同航班的信息,每个航班都有一个日期。我想要完成的是让用户选择一个日期然后我将遍历列表以返回该日期的航班,但也提前几天和之后。
怎么做?
逻辑-----------
答案 0 :(得分:0)
当你说“大约这个日期”时,你需要量化它。这个日期有多少天或几周?从List中提取数据时,使用它来创建上限和下限。
答案 1 :(得分:0)
您可以尝试将航班对象放入日期为关键字的地图中,值为该日期所有航班的列表。
这意味着在特定日期获得的航班为n(1),假设您的日期范围是常数(x天),您将进行额外的2x n(1)次查找。
如果你的界限是无限的,或者可能非常大,那可能就不可能了。
答案 2 :(得分:0)
迭代List
获取航班详情并定义您想要获取的日期范围
List<Flight> flights=new ArrayList<Flight>();
for(Flight f:flights)
{
Date d=f.getDate();
if(d is within the desired range)
{
//your logic in here
}
}
如果你想从头做一个逻辑你可以做的是获取millseconds
中的当前时间并从{{1}中的当前时间减去一天中所包含的毫秒(即86400000
) }
milliseconds