我有一个跑步者在不同日子绕着田径场跑步的TrackDay对象列表。每对开始/结束时间表示跑步者完成一圈。我们保证有匹配的开始/结束日期(以适当列表中它们出现的顺序)。
有没有更好的、更干净/高效的方法来完成上述任务呢?
TrackDay() {
List<DateTime> startTimes
List<DateTime> finishTimes
}
我希望找到最顶尖的N天(比如说3天),这些天里跑步者跑得最多。这意味着要找到每个TrackDay对象中总起始/结束时间最长的前N个时间。一种简单的方法是按照以下方式执行:
for (TrackDay td : listOftrackDays) {
// loop through each start/finish lists and find out the finish-start time for each pair.
// Add the delta times (finish-start) up for each pair of start/finish objects.
// Create a map to store the time for each TrackDay
// sort the map and get the first N entries
}
有没有更好的、更干净/高效的方法来完成上述任务呢?
TrackDay
类中添加一个totalTime()
方法。 - phflackCollections.sort(...)
的唯一问题是它会在原地进行排序,如果列表的顺序有意义,在排序操作之后将会丢失。 - TayTay